Skip to main content

Full text of "Peeker "Magazin für Microcomputer", Issue 6-1985"

See other formats


Nr. 6/85 Juni 


DM 6,50, sfr 6,50, 6S 50, Lit 5900, hfl 7,50 


tE 


Hires-FarbbDit 
Superdump 
Fourier-Anal 






2 


Solitalke 
BIN CE B]@N 





RO 
EB 
ae 











Interfaces für Computer mit Applebus + Interfaces für Computer mit Applebus + Interfa 











AP 13 und AP 17 AP 33 


RAM-Karten zum Einsatz als Pseu- RAMDISK der neuen Generation. 
dodisk unter CP/M, USCD und Für besonders speicherintensive 


APPLE-DOS. Speichergröße von Arbeiten ist der Ausbau in Stufen 


64 kByte bis 256 kByte. von 64 kByte bis 1MByte möglich. 
Bestell-Nr.: A 1013 a-b Bestell-Nr. A 1033 
A 1017 a-d 








AP 14 

Floppy-Controller für alle Anwen- 
dungsfälle. 10 Laufwerke können 
gleichzeitig angeschlossen werden. 
4 x 8” DSDD, 4 x 5Va” DSDD und 


zwei Apple-Standardlaufwerke. 
Maximal ca. 10MByte im Direktzu- 
griff. 


Bestell-Nr.: A 1014 





RN) jetzt 512 kK-RAM 


AP 20 

INTEMEX mit 68 000 CPU und 123 
k-RAM. Diese Karte macht aus Ihrem 
Rechner mit „Applebus” einen ech- 
ten 16 bit-Rechner. Eine Zusatzkarte 
(AP 26) ermöglicht einen Arbeitsspei- 
cher bis zu einem MByte und an Soft- 
ware gibt es einiges. Z.B. stehen drei 
Betriebssysteme und die wichtigsten 
Hochsprachen zur Verfügung. 
Bestell-Nr. A 1020 








AP 19 

12-Kanal AD-DA-Wandler mit 12 bit 
Auflösung und 25 u sec Wandlungs- 
zeit. Eingangsspannung +10 V. Ein 
schneller Wandler für extrem 
schnelle Anwendungen. 
Bestell-Nr.: A 1019 





WIOWDPREIETRNR 


NEU! 8 MHz Takt 


AP 22 

INTEMEX mit Z 80 B-CPU und 64 
k-RAM. Wenn Sie einmal diese Karte 
in Aktion gesehen haben, werden Sie 
auch feststellen: „Geschwindigkeit 
ist keine Hexerei, man braucht nur 
die AP 22”. Mit dieser Karte wird Ihr 
APPLE II zum z.Z. schnellsten CP/M- 
Computer, und in Verbindung mit 
dem SPACE 84 erhalten Sie Compu- 
terleistung, die wirklich einmalig ist. 
Wir vermitteln gerne eine Vorführung. 
Bestell-Nr. A 1022 


Das Interface-Buch von IBS, ein Buch für Alle, die Ihren APPLE II oder Kompatiblen 
optimalnutzen wollen. Detaillierte Schaltpläne, Bauteilelisten und Benutzungshinweise 
zu allen IBS-Interfaces finden Sie jetzt in einem Buch vereint. Ausführliche Abhandlun- 


welten aber auch über die Grenzen des APPLE II-Systems bestimmen den Wert dieses 


\ 
ao‘ „A gen über Spezialschaltungen, über Anwendungsmöglichkeiten, über neue Software- 


Buches. 


Für nur DM 8,00 erhalten Sie dieses Buch ab sofort bei Ihrem Computerfachhändler 
oder für DM 8,00 + DM 2,00 Versandkosten bei IBS COMPUTERVERTRIEB. 








135 
cCOMmrULETTecrNt 





Olper Straße 10 - 4800 Bielefeld 14 - Tel.: 06521/444032 - W. Germany 
1011 Rose Marie Lane 16 - Stockton CA 95207 - Tel. 209/473 —- 7473 USA 














Jeder Apple-Besitzer, gleich ob er kleine 
oder große Programme schreibt, kommt 
zwangsläufig im Laufe der Zeit zu der 
schmerzlichen Erkenntnis, daß es fehlerlo- 
se Programme nicht gibt. There is always 
one more bug! Folglich erfordert jedes 
kommerziell vertriebene Programm einen 
gewissen „Support“ zur Ausmerzung von 
Fehlern. Zwei Beispiele: 

Bug 1: In meinem Programm „RAM- 
DISKLC“ aus Peeker, Heft 1/85, S. 8, ist 
ein sehr unerquicklicher, aber leider nicht 
sofort evidenter Bug, der in exakt folgen- 
dem Fall auftritt: 


10 PRINT CHR$ (4) “OPEN ZAHLEN- 
TEATFILE? 

20 PRINT CHR$ (4) “WRITE ZAHLEN- 
TEXTFILE" 

30 PRINT Z1: PRINT Z2...: PRINT ZN: 
REM usw. 


Es muß also ein Textfile (kein Binärfile 
usw.) eröffnet werden; ferner muß ein 
Schreibvorgang stattfinden (WRITE, nicht 
READ); und schließlich müssen Zahlen 
(nicht Strings) geschrieben werden. Wenn 
nunmehr eine Zahl zwei Textfile-Sektoren 
überlappt, enthält genau diese Nahtstelle 
zwischen vorangehendem und folgendem 
Sektor „Zahlenschrott“. 

Bug 2: Die ProDOS-Version 1.0.1 (und 
1.0.2) in Verbindung mit der BASIC.SY- 
STEM-Version 1.0 hat einen ähnlichen 
Bug (s. S. 52 in diesem Heft): 

10 PRINT CHR$ (4) „OPEN TEXTFILE“ 
20 PRINT CHR$ (4) „READ TEXTFILE,F1“ 
30 INPUT ZAHL: REM oder INPUT STRING 
Es muß also ein Textfile eröffnet werden 
(kein Binärfile usw.); ferner muß von dem 
Textfile gelesen werden (READ, nicht 
WRITE); und schließlich muß eine Feld- 
nummer F > = 1 spezifiziert werden. Da- 
gegen ist es gleichgültig, ob eine Zahl oder 





£ediTORIAL 





ein String eingelesen wird. Hierzu kommt 
es jedoch gar nicht mehr, denn in Zeile 30 
weist das BASIC.SYSTEM den Variablen- 
wert nicht der INPUT-Variablen zu, son- 
dern schreibt ihn erbarmungslos in den 
Speicher des Applesoft-Programms (ab 
$0801), das somit zerstört wird. 

Zur Würdigung des „Supports“ muß man 
den Preis der Software mit berücksichti- 
gen. Nehmen wir einmal der Einfachheit 
halber an, daß ein Peeker-Heft im Durch- 
schnitt 10 Progamme enthält. Da ein ein- 
zelnes Heft DM 6,50 kostet, hat jedes ein- 
zelne Programm einen Durchschnittspreis 
von 6,5 : 10 = 0,65 DM. Unser „Support“ 
für das 65-Pfennig-Programm beschränkt 
sich daher auf die Veröffentlichung eines 
Patches, der den RAMDISKLC-Bug besei- 
tigt. 

ProDOS wird anstelle von DOS 3.3 heute 
in Verbindung mit der Hardware geliefert. 
Ein halbwegs komplettes Hardware-Paket 
mit Laufwerk(en) usw. kostet bei einem 
Vertragshändler heute immer noch gut DM 
4000,-. Dafür könnte man über 50 (in Wor- 
ten fünfzig!) Jahre lang den Peeker abon- 
nieren. Welchen „Support“ erhält man je- 
doch in bezug auf den ProDOS-Bug? In 
der Regel gar keinen, weil man aus nahe- 
liegenden Gründen kaum einen Vertrags- 
händler findet, der so tief in dieses Be- 
triebssystem eingedrungen ist, daß er eine 
Patentlösung („Patch“) anbieten kann. 
Denn schließlich ist ein Händler ein Händ- 
ler und kein Entwickler. 


Ulrich Stiehl 


So entstand der APPLE-Biß! 
(Frei nach Wilhelm Busch) Computergrafik von N. G. Barbieri 


Impressum Verleger und Herausgeber: Anzeigenleitung: 
Dipl.-Kfm. Holger Hüthig Jürgen Maurer, Tel. (06221) 489218 


Magazin für Apple-Computer Geschäftsführung Zeitschriften: z. Zt. gilt Anzeigenpreisliste Nr. 3 
2. Jahrgang 1985 Heinz Melcher Vertriebsleitung: 


Peeker 


Ruth Biller, Tel. (06221) 489280 


ISSN 0176-9200 Chefredakteur: 
Produktionsleitung: Gunter Sokollek 


© für den gesamten Inhalt Ulrich Stiehl (us) Tel. (06221) 489352 een re 
einschließlich der Programme (Bitte nur in redaktionellen Angelegenheiten ne er 


Dr. Alfred Hüthig Verlag, anrufen) Titelbild: Creative Computer 
Heidelberg 1985 Service, Mannheim 














MAGAZIN FÜR APPLE-COMPUTER 





Impressum ur . 5 Graf-quattro 
Inserentenverzeichnis . 8] 5 Teil 2: Schneller als der Schall 
Leserbriefe .. . 69 von Nino G. Barbieri 
Wie gibt man Maschinen- 
programme ein?.. . . . . 70 j 
Extended Graphic System 7 Das Farbbit 
Terminal-Programm für die 16 Pseudo-Double-Hires auf dem Apple Il Plus 
Super-Serial-Card 79 von Hans-Detlef Siewert 
Testberichte 
Diversi-DOS 4-C . 72 Superdump 
Lasar Ilze nn ‚25 22 Das universelle Hires-Grafik-Dump-Programm 
Typenradschreibmaschine von Jürgen Geiß 
Brother CE 50 °. 18 
Editierhilfen für den Apple Hardcopy auf Olympia ESW 100 RO 
GPLE und DOUBLE TAKE . it 34 Ein Typenraddrucker wird grafikfähig 
Lernprogramme von INTUS . ‚78 von Ralf Menssen 
3 8 Fourier-Analyse 
von Peter Walber 
Applesoft-Erweiterungen 
43 Eine Sammlung von Ampersand-Routinen 
von Markus Enzinger 
A 8 RAM-Disk-Driver für Pascal 1.1 
von Michael Schröter 
ProDOS 
5 2 Theorie und Praxis 
von Ulrich Stiehl 
Apple-CP/M 
55 Mit einem RAM-Disk-Driver für die 64K-Karte 
von Karl-Walter Bott 
Solitaire 
ee A und wie man es löst 
von Stefan Maas 
Verlag: Erscheinungsweise: 12 Hefte jährlich, Zahlungen: an den Dr. Alfred Hüthig Verlag Bankkonten: Landeszentralbank Heidel- 


Dr. Alfred Hüthig Verlag GmbH 
Im Weiher 10, Postfach 102869 
6900 Heidelberg 

Telefon (06221) 489-0 

Telex 4-6 1727 hued d. 


Erscheinungstag jeweils 1 Woche vor Monatsbeginn. 
Jahresabonnement DM 72,-, einschließlich MwSt, 
im Inland portofrei. Einzelheft DM 6,50 

Vertrieb Handel: 

MZV - Moderner Zeitschriften Vertrieb GmbH 
Breslauer Str. 5, Postfach 1123, 

8057 Eching b. München, 

Tel. 089/3191067, Telex 0522 656 


GmbH, D-6900 Heidelberg 1: Postscheck- 
konten: BRD: Karlsruhe 485 45-753; 
Österreich: Wien 7555888; Schweiz: Basel 


40-24417; Niederlande: Den Haag 145728; 


Italien: Mailand 47718; Belgien: 
Brüssel 723026; Dänemark: Kopenhagen 


34969; Norwegen: Oslo 994 24; 





Schweden: Stockholm 5477 76-5 


berg 67 207 341; BLZ 672000 00; Deutsche 


Bank Heidelberg 02165041; BLZ 
672 70003; Bezirkssparkasse Heidelberg 
204 51, BLZ 67250020. 


Herstellung: Heidelberger Verlagsanstalt 
Printed in Germany 









Jedes Hires-Grafikprogramm hat selbst- 
@ verständlich einen Hires-Cursor. Ich halte 

nicht viel von einem Cursor! Für mich sind 

zwei Cursoren viel besser. 

Warum zwei Cursoren? 

— Weil der Mensch zwei Hände hat, 

— eine Linie zwei Enden, 


— ein Zirkel zwei Spitzen, 


von N.G. Barbieri 
—- et cetera. 


Teil 2: Schneller als der Schall 





6 Peeker 6/85 








1. CURSOR1 und CURSOR2 


Die ersten zwei Utilities dieses Beitrags 
bilden die zwei Cursoren auf der Hires- 
Seite und sind — wie die Programme aus 
dem ersten Teil dieser Serie (Peeker, 4/ 
85) — selbständige Assemblerprogramme, 
die direkt von Applesoft oder anderen Ma- 
schinenprogrammen aufgerufen werden 
können. Im Grunde genommen sind die 
zwei Routinen identisch bis auf die Form 
der Shapes: „+“ für CURSORI und „x“ 
für CURSOR2. Bevor ich auf die Funktion 
eingehe, einige Worte über die Applesoft- 
Routine HFNS ($F6B9). Diese untersucht 
die aktuelle Programmzeile, holt sich ei- 
nen ersten Wert, der nicht kleiner als O und 
nicht größer als 279 sein darf, prüft, ob ein 
Komma vorhanden ist, und holt sich dann 





Peeker 6/85 


einen zweiten Wert, der nicht kleiner als O 
und nicht größer als 191 sein darf. Am 
Ende sind die Werte, die wir X und Y 
nennen wollen, jeweils im X-Register 
(XLOW), im Y-Register (XHIGH) und im A- 
Register (Y-Wert). Damit ist eine bequeme 
Art und Weise gegeben, von Applesoft aus 
einen direkten AnschluB an Assem- 
blerroutinen für die Hires-Grafik mit Über- 
gabe von Werten, Variablen oder Formeln 
für die X-Y-Koordinaten zu finden. 


Die einzelne Cursor-Routine ist so ge- 
schrieben, daß beim ersten CALL ein 
Shape mit XDRAW an den gegebenen 
Koordinaten gebildet wird. Bei weiteren 
CALLs wird immer zuerst das alte Shape 
gelöscht und dann ein neues gebildet, ge- 
gebenenfalls auf einer neuen X-Y-Posi- 
tion. Damit wird die spätere Arbeit in Ap- 
plesoft wesentlich erleichtert. Für die Cur- 
soren werden die normalen Applesoft- 
Shapes verwendet, aber direkt ohne den 
Umweg über das offset-indizierte Verfah- 
ren. Das geschieht, indem zuerst im X- 
und Y-Register jeweils das Low- und 
High-Byte der Speicherstelle, wo die 
Shape-Vektoren anfangen, und im A-Re- 
gister die Rotation (in unserem Fall immer 
0) geladen werden und dann ein JSR auf 
XDRAW ($F65D) erfolgt. Ist ein DRAW 
gewünscht, gelten dieselben Regeln, nur 
sollte dann der JSR auf $F601 geschehen. 
Möchte man diese Grundroutine auch für 
andere Zwecke benutzen (vielleicht für ein 
Flugzeug in einem Computerspiel), so 
braucht man nur andere Shape-Vektoren 
an der gegebenen Stelle einzufügen. 


Um die Cursoren zu steuern, hier die ent- 
sprechenden CALLs: 

CURSORT: Das erste Mal CALL 24769, 
danach CALL 24757. 

CURSOR2: Das erste Mal CALL 24820, 
danach CALL 24808. 

Die entsprechenden 
lauten: 

CALL 24757: X, Y (später) 
CALL 24769: X, Y (anfangs) 

für CURSORI1 und 

CALL 24808: X, Y (später) 

CALL 24820: X, Y (anfangs) 

für CURSOR2. 

Ähnlich wie bei XPLOT (s. Teil 1 dieser 
Serie) darf man nicht den syntaktischen 
„ı“ zwischen CALL und Koordinatenwer- 
ten bzw. Variablen vergessen. Die Koordi- 
naten werden danach automatisch gespei- 
chert, und zwar jeweils in der Reihenfolge 
XLOW, XHIGH und Y für CURSOR1 in 
$03CA, $03CB, $03CC und für CURSOR2 


BASIC-Befehle 








grafik 4.4 


in $03CD, $03CE und $03CF. Damit ist 
eine einfache und sichere Übergabe der 
Koordinaten für die anderen Utilities ge- 
währleistet. 


2. LINIE 


Die Tatsache, daß die Cursor-Koordinaten 
immer verfügbar sind, erlaubt es, mit einer 
sehr einfachen Routine eine Linie zwi- 
schen den zwei Punkten zu ziehen. Da- 
durch, daß wir jetzt auch über einen 
XPLOT-Modus verfügen (s. Teil 1), ist es 
möglich, die Linie auch blinken zu lassen 
und wie ein Gummiband zu behandeln. 
Ein Flag bei $0300 (768) regelt dies. Ist die 
Speicherstelle auf 0, so wird die Linie in 
XPLOT gebildet, sonst erfolgt der normale 
HPLOT. Die Assemblerroutine erklärt sich 
selbst. Von Applesoft aus reicht einfach 
ein 

CALL 24861. 

Die Unterroutine CURSORE sorgt dafür, 
daß die Cursoren veschwinden oder neu 
gebildet werden, je nach Bedarf. Damit 
wird verhindert, daß Linien oder andere 


Gebilde und Cursoren sich gegenseitig 


XORen. 


3. VIERECK 


Benutzt man die zwei Cursoren als diago- 
nal entgegengesetzte Ecken, ist es sehr 
einfach, ein Viereck zu bilden. Die Technik 
ist ähnlich der Routine LINIE, hat aber 
zusätzlich eine Unterroutine DOLINE, die 
auch für die folgenden Programme nütz- 
lich sein wird. Von Applesoft aus wird 
VIERECK mit 

CALL 24927 

aufgerufen. 


4. BOX 


Die BOX-Routine erlaubt es, ein Viereck 
zu füllen. Um die Sache interessanter zu 
machen, wird hier alternativ in vertikaler 
Richtung mit zwei Farben gefüllt, wobei 
auch eine Farbe 8 berücksichtigt wird, d.h. 
XPLOT. Dafür verwenden wir zwei Pointer, 
und zwar $0302 (770) und $0303 (771), 
wo jeweils die gewünschten Farben ge- 
pokt werden müssen. Möchte man nur mit 
einer Farbe füllen, poke man auf beiden 
Stellen denselben Wert und rufe danach 
BOX mit 

CALL 25007 

auf. Will man zum Beispiel den Inhalt des 
Vierecks negativ darstellen, dann muß 
man zweimal die 8 poken. Die Unterrouti- 
ne SETCOL sorgt dafür, daß entweder der 
entsprechende COLORMASK-Wert zum 


Klaus Jeschke 


Hard-, Software 
Viert Straße 3-13 
6233 Kelkheim 

2 (06198) 7523 


.n 


 nlo 188: 1. 
2 4} 2 HE 
. | 


| PaDOHeI 
















APPLE -- DISKETTEN LAUFWERKE -- APPLE : i IBM *** KOMPATIBEL ***** IBM *** KOMPATIBEL * 
Original Disk II m. Controller + DOS3.3+ Hdbuch DM 995,— A ee 6 Mon. Garantie Reparaturservice Alle Teile unterliegen einer sorgfältigen Endkontrolle und wir 
Original Disk Il (2. Laufwerk) DM 765,— Ansie-Beirlalne En übernehmen daher volle Garantie für die Funktionsfähigkeit, 
Duo-Disk Station Slimline, 2 x 143KB Chinon DM 995,— pp y en sowohl für die gelieferten Leerplatinen, als auch für die fertig 
Siemens Disk-Laufw., 143KB, m. Kabel + Gehäuse DM 525,— EEE ä bestückten Boards und Interface Karten, die fast ohne Ausnahme 
Abor-Disk-Laufw., Slimline, 143KB,m.Kab.+ Geh. DM 435,— £ mit gesockelten IC's geliefert werden. 
Chinon Slimline, 143KB, Superleise, m. Kab.+Geh. DM 495,— i IBM -- Kompatible Interface Karten und Mainboards -- IBM 
Teac 55F, 1 MB unf. Kapazität, Shugartbus DM 625,— Disk Controller Karte für 2 Disk-Drives "KL-2020 DM 298,50 
Teac 55F, kpl..in Gehäuse, 40/80 Track, 1MByte Color Video Board, Farb- und Video Ausg. *KL-2050 DM 598,— 
anschlußfertig, mit Umschaltung 40/80 + Kabel DM 698,— Monochrome Video Boards "KL-2060 DM 398,— 
Zweitlaufwerk für Apple II C, 143 KB, mit Kabel DM 498,— RS 232 Drucker Interface Karte KL-2074 DM 199,— 
APPLE -- INTERFACES + MAINBOARDS -- APPLE ; Centronics Paralell Interface Karte KL-2072 DM 198,— 
Disk Controller f. 2 Original 0. kompat. Drives "DM 89,— / Multifunktion Karte, RAM-Bereich, RS232, 
Super-Controller f. 2x Teac 55F, mit Software “DM 188,— Paralell, Clock, mit OK bestückt *KL-2040 DM 499,— 
80 Zeich-Karte mit 64K RAM + Softsw. f. le DM 395,— dto. wie vor, jedoch mit 128K bestückt *KL-2041 DM 699,— 
80 Zeich-Karte Il,m. Softswitch, 2 Zeichensätze "DM 159 AppLE£ -TASTATUREN+LEERGEHÄUSE+NETZTEILE- APPLE APPLE -- ORIGINAL + KOMPATIBLE - COMPUTER -- APPLE dto. wie vor, jedoch mit 256K bestückt "KL-2042 DM 899,— 
Au FUSS Erweiltrung TORE und iiprapetibie ‚DM 98— Standard Einbau-Tastatur, ASCII, freibel. 9 Tasten, APPLE Ile, 64KRAM, Ascii-Tastat. + UHF-Modul. DM 2198— 512K RAM Karte, mit O K bestückt KL-2095 DM 348,— 
2 OO UI UUER VER HELD AL DM 88  Doppelbelg. aller Tasten, Groß+Kleinschr.Nr.N26 DM 139,— APPLE Ile. Einstiegspaket = Computer 64KRAM, dto. wie vor, mit 128K bestückt KL-2096 DM 548,— 
Z 808 Interface Karte für CPM 3.0, m. 64K RAM ‚DM 595,— Tastatur wie vor, jedoch mit 15er Block Nr.N67 DM 178,— + Philips-Monitor 18 Mhz grün + Siemens F122 - Multi I/O Interface Board, RS232, Disk-Controller, 
Printer-Grafik Interface, Epson kompatible [DM 98,— Tastatur Nr. N67, mit sep. Gehäuse, kpl. m. Kabel DM 249,— Laufwerk 143K m. Controller + Lerndiskette DM 3098, — Centronics, Clock, Joystick 
SWEET UKGREN, DOENONGEETBOO EIN ‚DM 9%,—  seperate Tastatur IBM-Look, anschlußfertig mit APPLE IIC, 128 KRAM, ASCII Tastatur DM 2795,— undLightpen-Port "KL-2071 DM 699,50 
Printer-Grafik Interface, NEG/ITOH kompatibel DM 169,—  Kabel,Dopp.belegt.Tasten, freiprog.Funkt.Tasten DM 298,— APPLE II C. wie vor, jedoch deutsche Tastatur DM 2998, — Eprom Writer Karte (bis 128K benutzbar) a.A. 
Anschluß Kabel f. Paralell + Grafik Interface DM 34,— Seperate Tastatur, Eprom progr.-bar, Cursorblock MACINTOSH System komplett m. Mouse+ Tastatur Hardisk/Winchester Host-Adapter Karte "KL-2022 DM 1188,— 
Bufter Grafik-\metiace, banutzber für Drucker Tastenfeld mit 24 Funktionen, Deutsch o. ASCII DM 398, — + Macwrite/Macpaint, Systemguide-Diskette DM 5995, — Mainboard XT Version, 8 Slots 64K_ bestückt 
Epson/Nec/ltoh/Okidata u. andere m. 32K Buffer DM 348,— Leergehäuse Standard, passendf. TastaturNr.N?6 DM 98,— MEWA-48K, Apple kompat., Netzt. 5Amp, Tastatur mit 1 Boot-Eprom, 6 Eprom-Plätze frei "KL-1004 DM 996,— 
Buffer Interface wie vor aber mit 64K Buffer "DM 585,— dto. wie vor, jedoch passend für 15er Tast. N67 DM 119,— mit Dopp-Belegung + 10 frei Prog.Tasten, mit dto. wie vor, jedoch mit 128K bestückt *KL-1005 DM 1096,— 
Anschluß Kabel f. Buffer Interface Karte DM 39,— Leergehäuse wie Mewa 9000, für Einbau von zwei UHF-Mod,, ohne Firmware Eproms. DM 888,— dto. wie vor, jedoch mit 256K bestückt *KL-1006 DM 1296,— 
232C Serielle Interface Karte „DM 109—  sjimline-Laufwerken + Tastaturanschluß, Plastic DM 159,— MEWA-S4K, wie vor jedoch mit 15er Block DM 948,— Mainboard PC Version, 8 Slots, 64K bestückt 
Super Serieiie Interface Karte, Fulldupiex DM 288,— Leergehäuse wie vor, jedoch in Metall-Ausführung DM 198,— MEWA 9000er Serie, mit seper.Tastat. DIN o. ASCII mit 1 Boot-Eprom, 6 Eprom-Plätze frei "KL-1010 DM 896,— 
Sprach (Speech) Karte f. Sprachwiedergabe [DM 78,— Leergehäuse IBM-Look, f. 2 Laufw. Standard 5" DM 198,— m. dopp. belegt. Funkt-Tasten, Cursorbl. + 15er dto. wie vor, jedoch mit 128K bestückt "KL-1011 DM 996,— 
6522 Paralell Interface Karte DM 148,— Leergehäuse für 1 Slimline Laufwerk, Metall DM 19,90 Block Netzt. 5 Amp., Gehäuse für 2x Slimline- dto. wie vor, jedoch mit 256K bestückt "KL-1012 DM 1296,— 
Clock Karte (Datum/Uhrzeit) Ein/Ausgabe "DM 129,— Leergehäuse f. Duo-Disk = 2x Slimline-Laufwerke DM 98,— Laufwerke UHF-Modulator, o. Firmw.-Proms Bei den mit * gekennzeichneten Artikeln gehört zum Lieferumfang 
Eprom Writer Karte (2716 - 2764) ‚DM 129,— Leergehäuse f. Duo-Disk = 2x Standard-Laufw. DM 109,— (12KROM), 48K RAM DM 1098,— ein Manual, und z. T. ein Schaltbild. 
IEEE-488 Interface Karte DM 398,— Leergehäuse f. Duo-Disk = 2x Slimline + Netztel' DM 179,— MEWA 9000-64-C, wie vor jedoch 64K RAM DM 1198,— IBM -- Kompatible Leerplatinen + Boards - IBM | 
ee ee „DM 498  Schaltnetzteile für APPLE u. kompatible Rechner MEWA 9000-64-C Einstiegspaket, wie vor, jedoch Disk Controller f. 2. Drives DM 58,— 
Musik Karte m. Diskette und Handbuch DM 119—  ,59/3,5A -5V/0,5A +12V/2A -12V/05A  N73 DM 99,80 mit 1 Disk Drive eingeb. + Disk-Contr. + Monitor, Color Grafik Video Board DM 78,— 
PAL Color Interface Karte (UHF + Video) "DM 129,— +5V/5 A -5V/0,5A +12V/2,5A -12V/0,5a  N74 DM 119,80 grün DM 2098,— RS232 Interface Karte DM 68,— 
AGB Interface Karte (f. Appie ll + Il+) "DM 169—  ,54/7,5A -5V/0,5A +12V/2A -12V/05A  N75 DM 149,50 IBM-Look Gehäuse für MEWA 9000 Serie Aufpreis DM 68,— _Centronics Paralell Interface Karte DM 68,— 
Wild Karte (kopiert über RAM-Bereich) "DM 119,— “or... DISKETTEN + DISKETTEN-BOXEN -- see _ MATRIX- UND TYPENRAD - DRUCKER -—- ******"* Multifunktion Interface Board DM 99,— 
Peek EN EIWERB U EEE N Eshenecltwe DIR Zen Profi Disk.Box, m. Schloß, Klars.-Deckel, 100Disks DM 49,— CP-80 Matrix Drucker, Epson kompat., vollgrafik(. DM 739,— Eprom Writer Interface Karte DM 78— 
256K RAM Erweiterungs Karte m. Patchsoftware "DM 698,— Disk Box mit Klars.-Deckel, ca. 70 Disketten 5" DM 26,— CP-80 X mit eingeb. Interface für VC64f.Sim.B. DM 899,— Multi l/O Board DM 78— 
6809 Prozessor Exell-9 Interfacekarte +DM 398,—  „artbox für 10 Disketten, mit Klappdeckel DM 690 SPEEDY 100.80 Epsonkompat..1002/s,v..grafik. DM 759 — Mainboard XT Version, 8 Slots DM 98,— 
IC-Tester Interface Karte (RAMS/TTL 54/74) DM 448,— Disketten, mit Verstärkungsring, 3 Jahre Garantie GEMINI 10X, Neu mit Textsp., 100 Z/s., 9x9 Mat. DM 998,— Mainboard PC Version, 8 Slots DM 96,— 
FOREN LT RED DEF ON BI ARRORR DM 587  ABX 100 = SS/SD 10 Stck.a. 3,9850 Stck. a. 3,88 500 Stck.a.3,59 GEMINI15X wie 10X, jedoch bis375 mm Papierbr. DM1198— RAM Card für Speicher-Erweiterung DM 68 
Hauptplatine 64K, wie vor DM 648.— ABX 200 = SS/DS 10 Stck. a. 4,08 50 Stck. a. 3,98 500 Stck. a. 3,69 ITOH 8510 B, Die Zuverlässigkeit in Person DM 14755. — Alle Leerplatinen werden mit Bestückungsplan geliefert. 
APPLE - LEERPLATINEN go APPLE ABX 400 = DS/DD 10 Stck. a. 4,98 50 Stck. a. 4,88 500 Stck. a. 4,59 JUKI 6100. Typenraddr., 22 Z/s, TA-Typenräder DM 1495,— Schaltbilder, soweit verfügbar, Lieferung gegen Aufpreis. 
Leerplatinen der obigen Interface Karten sind alle in vergoldet, typ a B IBM -- Gehäuse/Netzteile/Tastaturen/Diskdrives - IBM 
m. Bestück-Aufdruck + Best.-Plan lieferbar. GENE TEEETTERERFTTITENTE Rechner Leergehäuse f. Einbau v. 2 Drives DM 236,— 
Leerplatinen mit der Kennzeichnung "DM 39,— Computer-Artikel Nachnahmeversand unfrei, Zwischenverkauf vorbehalten. , e Profi-Tastatur, m. Kabel im Gehäuse, ASCIl DM 395,— 
Leerplatinen mit der Kennzeichnung "DM 24,50 Angebote freibleibend unter Anerkennung unserer Lieferbedingungen. Technische Änderungen vorbehalten. "Apple ist eingetragenes dto. wie vor, jedoch deutsche DIN Belegung DM 489,— 
Leerplatinen mit der Kennzeichnung +DM 33,— Warenzeichen der Fa. Apple-Computer Inc., Kalifornien. Ware mit Rückgaberecht, besonders gekennzeichnet, muß frei zurückgeschickt Standard Tastatur, IBM-Look, ASCII DM 298,— 
Experimentier Platine, für Apple Slot EX300 DM 29,90 werden. "IBM* ist eingetragenes Warenzeichen der Firma IBM GmbH Ffm. Netzteil, mit Ventilator, 100 Watt DM en 
Leerplatine Motherboard, 48K, mit Best.-Aufdruck DM 66.— dto. wie vor jedoch 135 Watt DM JE 
Leerplatine Motherboard, 64K, mit 6502 + Z80 om #—- COMPUTER CENTER CONEX ERICH-WILLI MEYER Disketten Laufwerk, 2x40 Track DS/360 KB Di Fre 
5650 SOLINGEN 11: Postfach 11 0206 -11G 6343 FROHNHAUSEN - Postfach 70 11 Harddisk 10MByte, kpl. m. Xebec Controller R 


Telefon (021 22) 754.49 


Telefon (027 71) 350 71 


Sonderliste gegen Rückporto. Katalog gegen 3 DM in Briefmarken 


Für lic und Ile mit 64K-Karte 


SUPERPLOT 


Double-Hires-Utility 
von Karl-Walter Bott, 1984, Programmdiskette und Manual, DM 48,— 





SUPERPLOT ist eine neue, ungewöhnlich kompakte und schnelle Ampersand-Utility für Double Hires, die einschließlich eines 
vollständigen ASCII-Shape-Zeichensatzes wahlweise in Bank 1 oder Bank 2 der Language Card liegt und damit sowohl unter 
ProDOS als auch unter DOS 3.3, falls letzteres in die LC-Bank geschoben wurde, benutzt und in eigene Applesoftprogramme 
integriert werden kann. SUPERPLOT unterstützt die üblichen HGR-Befehle, denen lediglich ein & vorangestellt werden muß, 
also z. B. & HPLOT 500, 100 TO 500, 150 usw. SUPERPLOT ist speziell für das Plotten von beschrifteten wissenschaftlichen 
Funktionskurven mit hoher Auflösung gedacht und weniger für HGR-Spiele. 


Hüthig Software Service - Postfach 102869 - 6900 Heidelberg 1 





8 Peeker 6/85 











GILLEILTAAE ST 


Gratis! 
‚AppleQuick 


Das Apple Il-Brevier 
fur haufig gebrauchte 
Adressen und Befehle! 
64 Seiten uber Apple- 
soft, DOS, Pascal, CP/M. 


Die beiden Autoren haben zusam- Gleich anfordern! 

a. en als 50 We Amateur- a 
unk-Erfahrung und präsentieren Se 
hier mehr als 20 BAsıc- ) BASIC-Pro- 
Programme, die jeden Funkamateur 
interessieren: TH-KENNER, 
DAMMERUNGSLINIE ‚DX- 
RECHNER ,‚DOPPEL-FAHN- 
DER, NACHWEISSCHREIBER, 
ALLZWECK-CONTEST-LOG- 
GER, FIELD-DAY-LOGGER, 
WETTBEWERB-LOGGER 
u.v.a.m. Das Buch enthält die kom- 
PER Listings für Apple II und 


% Ablage Bearbeiten Große AIIET Zeichensatz Stil 


Be 
m ed 


andahnnko 


Bismarckstr. 67, D-1000 Berlin 12 (030) 342 88 00 


5567 Pandabooks! 


Ba 




























N 






CD 


gramme fur 


Funkamateure 
Overbeck 


Die Qualität kommerzieller Arcade- 
spiele läßt sich mit APPLESOFT 
BASIC alleine nicht erreichen. Jef- 
frey Stanton führt in die Eigenarten 
der hochauflösenden Apple-Grafik 
ein und präsentiert schließlich eine 
Reihe extrem schneller Assembler- 
Routinen, mit denen Sie viele Effek- 
te bekannter Spiele selbst program- 
mieren können. Gute BASIC- 


Apple II 
Raster Grafik 


Jeffrey Stanton 


3-89058-027-0 ca.256S. DM 48,-- 
komplett mit Disk DM 89,-- 





Kenntnisse werden vorausgesetzt, A pp le I] 
eine Einführung in Assembler- Eine detaillierte Beschreibung der 
Programmierung wird gegeben. Schal tp lane Apple II und Apple IIplus Schaltun- 


gen. Wenn Sie Ihren Apple selbst re- 
parieren, Interface-Karten oder 
Schaltungserweiterungen entwerfen 
oder einfach nur besser über das In- 
nenleben Ihres Apple Bescheid wis- 
sen wollen - dieses Buch bietet Ihnen 
eine Fülle an Informationen, Schalt- 
pläne und Zeitdiagramme, Theorie 
und praktische Tips. 


3-89058-012-2 215S.A4 DM64,-- 


3-89058-006-8 299 Seiten DM 49,-- Wınston D Gayler 


komplett mit Disk DM 89,-- 





Don Worth und Peter Lechner sind 
die Autoren von ‘‘Beneath Apple 
DOS‘‘, der Bibel aller DOS 3.3- 
Benutzer. In ihrem neuen Buch ha- 
ben sie sich ProDOS vorgenommen 
und mit der ihnen eigenen Gründ- 
lichkeit zerlegt. Ausführliche Be- 


Handbuch 
Worth/Lechner 







schreibung der Arbeitsweise, der 


Endlich anspruchsvolle Apple- 


Km ZZ us nn 









Dateitypen, des ‘“MLI‘‘ und des Grafik für BASIC-Programmierer. i f 
“BASIC SYSTEM“‘. Das Standard- Mikrocomputer Grafik Mik 3 OCOMDIMET 
werk für jeden ProDOS-Anwender. i Grafik 

- enthält fast 80 lauffertige BASIC- 
3-89058-036-X ca.250S. DM 46,-- Programme, die die beschriebe- } Roy E. Myers 


nen Konzepte illustrieren. 





beschreibt ‘Hidden Line‘‘- und 
“Hidden Surface‘‘-Techniken, r 
Skalierung, Rotation und Trans- > 





lation von Grafiken | 





\ Das Assembler-Lehrbuch für 
BASIC-Kenner. 







Apple II 


bietet eine Einführung in die Ani- 











rd ki. a der a: Vet 7 Assembler- i mationstechnik 

annter Software-Pakete, schrie > ing j 

eine monatliche Kolumne über )  [Ogrammıer und 3-89058-000-9 292 Seiten DM 49, | 
Assembler-Programmierung in der Roger Wagner komplett mit Disk DM 89,-- 

Apple-Zeitschrift SOFTALK. [ ma 

Der vorliegende Band faßt diese si Ö N) 

Reihe, korrigiert und erweitert, zu- N) | 22 Pascal-Programme, mit denen 
sammen: Eine stufenweise Einfüh- - 


Sie die Grafik-Möglichkeiten Ihres 


Apple 
Apple voll ausschöpfen: 


Pascal Grafik 


rung in die Befehle und Strukturen 
der 6502-Assemblersprache, mit vie- 








len Beispielen von der einfachen 

Tongenerierung bis zum Disketten- 

zugriff. 

3-89058-003-3 277 Seiten DM 48,-- 
komplett mit Disk DM 89,-- 





Tom Swan 


“‘Designer‘‘ ermöglicht es Ihnen, ei- 
gene Zeichensätze zu entwerfen. 
‘“‘Gredit‘‘ unterstützt Sie beim Ent- 
werfen komplexer Bildschirm- 
Grafiken 

“Printfoto‘‘ bringt Ihre Entwürfe 


aufs Papier. 

Darüberhinaus bietet das Buch eine 
Fülle fertiger Prozeduren, die Sie 
| zeitsparend in Ihre eigenen Pro- 
gramme einbauen können 


3-89058-009-2 280 Seiten DM 49,-- 
komplett mit Diskette DM 89,-- 













Ein Simulationsprogramm, das Sie 
in das Innere des 6502 Mikroprozes- 
sors führt. Sie sehen auf dem Bild- 
schirm, wie die einzelnen Instruktio- 
nen in Zeitlupe ausgeführt werden, 
wie sich die Register und die Flags 
verändern. Ein unverzichtbares 
Hilfsmittel beim Erlernen der 
Assembler-Programmierung, da- 
nach ein wertvolles Werkzeug beim 
Testen Ihrer eigenen Programme. 
Komplett mit einem 6502 Editor/- 


Visible Computer 
Charles Anderson 


Österreich. OÖLandesverlag, Linz * Schweiz : Thali AG, Hitzkirch | 






In allen Buchhandlungen und Computershops oder direkt von: 
Pandabooks, Bismarckstr. 67, 1000 Berlin 12, (030) 342 88 00 ; 
BE BEE Bestellcoupono BRBRBBBBEBBBBEBBEBEEN 


Assembler, deutschem Handbuch Name: . eis Sa ee 

(150 Seiten) und über 30 Beispiel- Anschrift: O per Nachnahme 

programmen. (zzgl. Versandspesen) 
Menge Titel Preis 


3-89058-019-X DM 129,-- 





Peeker 6/85 9 








Einsatz kommt oder der XPLOT (8) einge- 
schaltet wird. SETCOL wird auch bei der 
folgenden Routine benutzt. 





9. HINTERGRUND 


Grundsätzlich funktioniert HINTER- 
GRUND wie BOX, nur mit festen Werten 
und dadurch schneller (schließlich muß 
die ganze Seite gefüllt werden). Der ent- 
sprechende Applesoft-Befehl lautet 
CALL 25177. 





6. PAGE.SWAP 


Für den Grafik-Editor, den ich später vor- 
stellen werde (HGR als Arbeitsseite und 
HGR2 als Hilfsseite), wird es oft notwendig 
sein, die zwei Seiten auszutauschen. Die- 
se kleine Routine besorgt das blitzschnell. 
Zum Swapppen verwende man 

CALL 25258 

als Applesoft-Befehl. Hier ist der Unter- 
schied zwischen Applesoft und Maschi- 
nensprache voll spürbar. Ein entsprechen- 
des Applesoft-Programm würde über 
200mal langsamer sein! 


Lassen wir es für diesmal genug sein. Im 
3. Teil von Graf-quattro geht es um das 
Übertragen oder Kopieren von einem be- 
liebigen viereckigen Ausschnitt, entweder 
auf derselben oder auch auf der anderen 
Grafikseite. 


10 














SCHNELLER AlSG DER SEHALL 








.denndasModem | Ber 
WS 2000 überträgt —. 







“ LocaL TEST Ras 


\ T TIRKLE Modem WS 2000 





» Datenaustausch und Kommunikation — weltweit und mit 
praktisch jedem Computer $» Nutzung von Datenbanken, 
Mailboxen, DATEX-P, BTX, BTX rückwärts usw. $ TELEX 
nutzen ohne eigenen Anschluß — mit Ihrem Computer und: 
dem WS 2000 PAlle gängigen Baudraten (75, 300/300, 
600, 1200, 1200/75, 75/1200) und internationalen Stan- 
darts (CCITT, BELL) — auch automatisch umschaltbar (mit 
IC-Satz SK-1) $ Automatisches Wählen (mit AD-2) $ Au- 
tomatisches Anruf-Annehmen (mit AA-2) $ Einfacher An- 
schluß (parallel zur Telefonleitung) ® Eingebautes Netzteil 
» Deutsche Anleitung $ 1 Jahr Garantie $» Sofort ab La- 
ger Hamburg lieferbar 














Preise (inkl. MWST.; zuzügl. Verp. u. Versandk.; bei Vorkasse frei Haus): 
WS 2000 World Standard Modem DM 798,00 IBMC IBM-Interface (UPL-Port) DM 330,60 








AD-2 _AUTODIAL-Platine DM 199,50 APC Apple-Int. (RS232 u. UPL) DM 330,60 
AA-2 AUTOANSWER-Platine DM 199,50 CBM-1 Interface f. C64/VIC20 DM 136,80 
SK-1 Steuer-IC-Satz DM 96,90 ML-2 Kabel Computer/Modem 

UPL Kabel f. AD-2 u. SK-1 DM 45,60 (nicht nötig f. APC-2 u. CBM-1) DM 57,00 







Software und weitere Interfaces auf Anfrage » Erhältlich im Fachhandel oder vom Importeur: 
Claus F. Erbrecht - Computer Related Products 
Lappenbergsallee 37 - 2000 Hamburg 20 
Tel.: 040/8505255 


Achtung: Nur für hausinterne Telefon-Anlagen - in  \Z 
Ai MIRACLE 

















der Bundesrepublik Deutschland ist der Anschluß 
an das öffentliche Telefonnetz nicht gestattet! 


Peeker 6/85 





CURSOR1 


60DE: 
6PEl: 
6DEA: 
60ET: 


32 
cl 
55 
np 


51 Bytes 


CURSOR2 


oo onısVv ou huıvd m 


DrbrerbrrrrH HH 
SODOv IODTT PU DH 


DWDDXMD 
QvDdHr 


DD 
a» 


DD DD 
SONO 


en 
rm 


Bon am a a oa wa WW 
SOON) AU D 


AA 
av 


TTtm mm nm m np pr ra» » 
ONODOTTAUDHSOOTÄNID OA 


oo oı9 m Bud Hr 


DrrbHrbrHrHHr HH 
SO o IV AU DVD HU 


DD 
Dr 


23 


60ES: AE CD 3 24 


Peeker 6/85 


ORG $6@B5 ‚24757 


CURSOR1 


* 
E 2 
* 
* 
* von N.G. Barbieri/1985 
%* 

* 


Aufrufen mit CALL 24757: X,Y 


COLON EQU $3A sun 
CUXL EQU $3CA 
CUXH EQU $3CB 
CUY EQU $SCC 
SYNCHR EQU $DEC® 
HFNS EQU $F6B9 
HPOSN EQU $FAll 
XDRAW EQU $F65D 
* 
* Weitere CALLS 
%* 
* Hole alte Koordinate 
%* 
LDX CUXL 
LDY CUXH 
LDA CUY 


und lösche alten Cursor. 
JSR CURS 

Erster CALL 

Hole neue Koordinate 
LDA #<COLON 


JSR  SYNCHR 
JSR HFNS 


‚Syntax- 
‚prüfung 


Speichere neue Koordinate 


STX CUXL 
STY CUXH 
STA cCUY 


und bilde neuen Cursor. 


JSR HPOSN 
LDX #<SHAPE ‚Shape- 
LDY #>SHAPE ‚adresse 
LDA #$9 ;ROT=® 
JMP XDRAW 

%* 

* SHAPE für Cursor + 

%* 

SHAPE HEX 3207C1 
HEX C16721 
HEX 5534A97 
HEX 09 


ORG $6PE8 ‚24808 


CURSOR2 


von N.G. Barbieri/1985 


* 
* 
* 
* 
* 
* 
* 


Aufrufen mit CALL 24808: X,Y 
* 

COLON EQU $3A zum 
CUXL EQU $3CD 

CUXH EQU $3CE 

CUY EQU $3CF 

SYNCHR EQU $DEC® 

HFNS EQU $F6B9 

HPOSN EQU $FAll 

XDRAW EQU $F65D 

%* 

* Für weitere Kommentare siehe 
* CURSORI! 

* 
* Hole alte Koordinate 
* 





LDX CUXL 


oo oıoaPruvmnd- 


DHrrrbrHrHr Hr HH 
So SV UV AND HU 


DWVDDXD 
N DH 


WWW mnmwmnmnmn mn ABArR»r—r par ar W A N NW A U U U SS DI DWVDWDWDD 
oO ID PUD- SO IO TI PPUNUNDHrSOVO IVO UI PWNDH-BSOO ID UM 


* 


LDY 
LDA 
JSR 
LDA 
JSR 
JSR 


CUXH 
CUY 
CURS 
#<COLON 
SYNCHR 
HFNS 


‚Syntax- 
‚check 


* Speichere neue Koordinate 


%* 


* 


STX 
STY 
STA 
JSR 
LDX 
LDY 
LDA 
JMP 


CUXL 
CUXH 
CUY 
HPOSN 
#<SHAPE 
#+>SHAPE 
+$9 
XDRAW 


* SHAPE für Cursor X 


” 
SHAPE 


HEX 
HEX 
HEX 
HEX 


1C1C4D 
Fl1ElE 
1E4D39 
C19799 


von N.G.Barbieri/1985 


Aufrufen mit CALL 24861 


* 
CUlXL 
CUIXH 
CUlY 

CU2XL 
CU2XH 
CU2Y 

XFLAG 
CURS1 
CURS2 
HPOSN 
XLINE 
HGLIN 


“*r rk kr KRr Kr 


*%* * 


%* 
* 
* 


EQU 
EQU 
EQU 
EQU 
EQU 
EQU 
EQU 
EQU 
EQU 
EQU 
EQU 
EQU 


JSR 


Dann Linie 


LDX 
LDY 
LDA 
JSR 
LDX 
LDY 
LDA 
BEQ 
LDA 
JSR 
JMP 


LDA 
JSR 


CURSORE LDX 


* 


* Die Routine 


LDY 
LDA 
JSR 
LDX 
LDY 
LDA 
JSR 
RTS 


$3CA 
$3CB 
$3CC 
$3CD 
$3CE 
$3CF 
$399 
$60D2 
$6105 
$FAll 
$603F 
$F53A 


Erst Cursoren löschen 


CURSORE 


bilden ... 


CUlXL 
CU1lXH 
culY 
HPOSN 
CU2XH 
cu2Y 
XFLAG 
XOR 
CU2XL 
HGLIN 
CURSORE 


CU2ZXL 
XLINE 


CUlXL 
CUlXH 
culY 

CURS1 
CU2XL 
CU2XH 
CU2Y 

CURS2 


‚Shape- 
‚adresse 
;ROT=® 


Zieht eine HPLOT- oder XPLOT- 
Linie zwischen CURSOR1l und 
CURSOR2. 


‚Ist XOR? 


;Nein! 


‚Ja! 


und wieder Cursoren. 


CURSORE kann auch 





11 


66 Bytes 


VIERECK 


oo o_ıvVum Pu vr 


AU D Hr 


FON 


a 


* von anderen Patches 
* angesprochen werden! 


ORG $615F ‚24927 
* 
* VIERECK 
POS 
* 
* von N.G.Barbieri/1985 
* 
* Aufrufen mit CALL 24927 
* 
CUlXL EQU $3CA 
CU1lXH EQU $3CB 
CUlY EQU $3CC 
CU2XL EQU $3CD 
CU2XH EQU $3CE 
CU2Y EQU $3CF 
XFLAG EQU $309 
HPOSN EQU $F4ll 
XLINE EQU $6@3F 
HGLIN EQU $F53A 
CURSORE EQU $6146 


Bildet ein HPLOT- oder XPLOT- 
Viereck, wobei CURSOR1l und 
CURSOR2 diagonal entgegen- 
gesetzte Ecken sind. 


“RK KKR Kr 


JSR CURSORE 


* 


LDX CUIlXL 
LDY CUI1XH 
LDA cCUIlY 

JSR HPOSN 


LDY culY 
LDX CU2XH 
LDA CU2XL 
JSR DOLINE 


LDY cuU2Y 
LDX CU2XH 
LDA CU2XL 
JSR DOLINE 


LDY cu2Y 

LDX CUIlXH 
LDA CUIXL 
JSR DOLINE 


LDY cCUlY 
LDX CUIlXH 
LDA CUIXL 
JSR DOLINE 


* 


JMP CURSORE 


Folgende Routine bildet eine 
Linie entweder in Farbe oder 
XOR. Kann auch von anderen 


“*KKK KK 


DOLINE PHA 
LDA XFLAG ;XOR? 
BEQ XOR ‚Ja! 
PLA ‚Nein! 
JMP HGLIN 


PLA 
JMP XLINE 


$61AF ‚25007 


von N.G.Barbieri/1985 


Aufrufen mit CALL 25907 


“KR KK KRK KH 


CUlXL EQU $3CA 


Utilities angesprochen werden. 


CUIXH EQU 
culY EQU 
CAlY EQU 
CU2XL EQU 
CU2XH EQU 
cu2Y EQU 
CA2Y EQU 
XFLAG EQU 
FARBEl EQU 
FARBE2 EQU 
HPOSN EQU 
HCOLORZ EQU 
CURSORE EQU 
DOLINE EQU 
COUNT EQU 
CFLAG EQU 
COL1 EQU 
COL2 EQU 
* 


$3CB 
$3CC 
$3C6 
$3CD 
$3CE 
$3CF 
$3C9 
$399 
$392 
$393 
$FAall 
$E4A 
$6146 
$6lAl 
$9 

$1 

$2 

$3 


Füllt eine Box alternativ 
mit zwei Farben auf, wobei 
eine oder beide Farben auch 
XOR sein können! 


JSR 
JSR 
LDA 
STA 


CURSORE 
SETCOL 
+$9 
CFLAG 


Die vorhandenen Y-Werte müssen 
gemerkt werden. 


LDA 
LDX 
STA 
STX 
CMP 


Wenn beide 
dann keine 


BNE 


Vor RETURN 


CUlY 
CU2Y 
CAlY 
CAZY 
cu2Y 


Y gleich sind, 
BOX! 


WEITER 


sicherstellen, daß 


die ursprünglichen Y-Werte 
wieder hergestellt werden! 


RETURN LDA 
LDX 
STA 
STX 
LDA 
STA 
JMP 

” 


CAlY 
CA2Y 
CUlY 
cu2Y 
#59 
XFLAG 
CURSORE 


* Falls Y2>Yl, einfach umtauschen 


* 
WEITER BCS 
PHA 
LDA 
STA 
PLA 
STA 
LDA 


Anzahl der 


SUBTR 


CU2Y 
culY 


CU2Y 
culY 


notwendigen Linien 


im COUNT speichern. 


SUBTR SEC 
SBC 
STA 
INC 

* 

* Siehe auch 


CU2Y 
COUNT 
COUNT 


Kommentare zum 


* Programm HINTERGRUND! 


* 

LOOP LDA 
BNE 
DEC 
LDA 
CMP 
BNE 

. 

SETXOR LDA 
STA 
JMP 

* 

LINCOL STA 


CFLAG 
NEXTCOL 
CFLAG 
COL1 
+58 
LINCOL 


+59 


XFLAG 
LINE 


HCOLORZ 





Peeker 6/85 


Sn 


Sie haben einen Apple... 


wir haben die 
Software... 








und die 
Hardware... 


BEER ä Re 
: eb RN er AR 
; ee nnerıs ee 












eh 
iu N 


uccessol { . 
unit — w 


PN au {he R | | | ‚ _— Me 
| Per DE nn. JSOFT 
= | © = EL 


und die 
Zeitschriften... 












wir haben die 
Bucher... 








u 


ee 
VarıpAaTe is 





ALLES FÜR DEN APPLE II, Il, IE 


ee Dr.-Ing. Eden 


UHLANDSTR. 195 - D-11000 BERLIN 12 
TEL.(O30) 310 423 - TELEX:185859 „Ic 
Autorisierter @geppie Fachhändler MICROSOFT Distributor 





Peeker 6/85 13 








99 
199 


* 


LDA #$1 
STA XFLAG 
JMP LINE 


103 NEXTCOL INC CFLAG 


194 
195 
196 
197 
108 
199 
119 
111 
112 
113 
114 
115 
116 
117 
118 
119 
129 
121 
122 
123 
124 
125 
126 
127 
128 
129 
139 
131 
132 


LDA COL2 

CMP #$8 
SETXOR 
LINCOL 


CUlXL 
CU1lXH 
culY 
HPOSN 
CU2XH 
CUlY 
CU2XL 
JSR DOLINE 
DEC CUIlY 
DEC COUNT 


Noch Linien? 


BEQ RETURN ;Nein! 
BNE LOOP ‚Ja! 


SETCOL sorgt dafür, daß 

in den temporären Variablen 
COL1 und COL2 zwei Farben, 
inkl. XOR, für Alternativ- 
betrieb gespeichert werden. 
Ist auch von anderen Utilities 
aus ansprechbar! 


623F: AE 92 133 ETCOL LDX FARBEIl 


6242: BD 59 134 
6245: 85 92 135 
6247: AE 93 136 
624A: BD 59 137 
624D: 85 93 138 
624F: 69 139 
140 x 


LDA CTABLE,X 
STA COLI1 

LDX FARBE2 
LDA CTABLE,X 
STA COL2 

RTS 


6250: BO 2A 55 141 CTABLE HEX PP2ASSTF8PAADSFFPB 


6253: 7F 80 AA D5 FF 98 
178 Bytes 


HINTERGRUND 


“*RRKKKKKK 


ORG $6259 


HINTERGRUND 


von N.G.Barbieri/1985 


Aufrufen mit 25177 


XFLAG EQU $39® 
HPOSN EQU $FAll 
HCOLORZ EQU $E4A 
CURSORE EQU $6146 
DOLINE EQU $61Al 
SETCOL EQU $623F 
COUNT EQU $® 
CFLAG EQuU $1 
CoL1 EQU $2 
coL2 EQU $3 


* 


Füllt mit COLOR, MIXCOLOR 
oder XORt (macht negativ) 
die HGR-Seite. 


JSR CURSORE 
JSR SETCOL 
LDA +#$9 

STA CFLAG 


LDA #$cp 
STA COUNT 


* 
LOOP DEC COUNT 


* 


14 


CFLAG = ® --> COLOR 1 
CFLAG <> ® —> COLOR 2 


LDA CFLAG 
NEXTCOL 
CFLAG 
COL1 





62A3: A5 
62A5: DB CO 
62AT: AC 46 61 


81 Bytes 
PAGE.SWAP 


* 
* Ist COLOR = XOR? 
* 
CMP +#$8 
BNE LINCOL ;Nein! 
* 
SETXOR LDA +#$9 ‚Ja! 
STA XFLAG 
JMP LINE 
* 
LINCOL STA HCOLORZ 
LDA #$1 
STA KXFLAG 
JMP LINE 


* 

NEXTCOL INC CFLAG 
LDA COL2 
CMP_ #$8 
BEQ SETXOR 
BNE LINCOL 


LDX #$9 
LDY +#$9 
LDA COUNT 
JSR HPOSN 
LDX #$1 
LDA #$17 
LDY COUNT 
JSR DOLINE 
%* 
* Noch Linien? 
* 
LDA COUNT 
BNE LOOP ‚Ja! 
JMP CURSORE ‚Nein! 


ORG $62AA ‚25258 
* 
* PAGE.SWAP 
A 
* 
* von N.G.Barbieri/1985 
* 
* Aufrufen mit CALL 25258 
* 
HGR EQU $6 
HGR2 EQU $8 
PAGl EQU $7 
PAG2 EQU $9 
* 
* Diese Routine tauscht super- 
* schnell, unter Verwendung aller 
* 3 Register, HGR mit HGR2 aus. 
* 


LDA #$49 
STA PAG2 
LDA #$29 
STA PAGI 
LDA #9 
STA HGR 
STA HGR2 
TAY 


LDA (HGR),Y 

TAX 

LDA (HGR2),Y 
STA (HGR),Y 

TXA 

STA (HGR2),Y 
INY 


Ist Y-Register wieder auf ®? 


BNE LOOP ;Nein! 


INC PAGI ‚Ja! 
INC PAG2 


Sind alle 8K übertragen 
worden? 


“RR Kr 


PAGI 
+$49 


LOOP 





Peeker 6/85 





gezza MICROMINT 


TESROmMUNT 
LLTREFFER 


LASAR 16 
IBM 264 K, TEAC BFDD, Contr. 
color Graphik, Multifunktionscard, 


nerzei152 4.990; 
LASAR ZE 


— Apple comp. 64 K + 
12 KROM + 


80 Zw Tastatur 1.2905 

Außerdem volles Rückgaberecht innerhalb 
14 Tagen ohne Begründung. 

Apple 






III ' 


a 





@© Mehrzweckklappgehäuse It. Abb. 179,— | 179,— 
® Schaltnetzteile Apple5 A/IBM 15 A 115,-— | 350,— 
@ Profitastatur dtsch. LASAR 2000 299,— | 299,— 
®@ Interface ab 75,— | 148,— 
@ Monitor 22 Mhz incl. Fuß, bernstein 299,— | 299,— 


Kaufgarantie/Tiefstpreisgarantie/1A Qualität: 100 % kompatibel inkl. Systemsoftware 

Made by Micromint: Apple Il 495,-, Apple Ile 695,—-, IBM 895,— Fertigplatinen 495/695/ 

895. Tragbare Gehäuse für 7-Zoll/9-Zoll-Monitore 595,-— DM inkl. Tastaturen. 
Winchester 27 MB auf Anfrage 1A First Class Controller bis 140 MB 935,— DM. 


Generalimporteur MICROMINT Computer GmbH 
Hochdahler Straße 151, 4006 Erkrath 2 
Telex 8589305 mem 


02104/33024 





Der nächste Peeker 
Heft 7/1985 
erscheint am 
24. 6. 1985 





"yonsÄkor 


-UeIY IOMZ UON gnIyosUy Wunz LHOdAOF 


" dn»peg 'n wvH HWw (1289) PIeEO-VId ar QQV 


" dnypeg 'n WVH Hu (2259) PieQ-vIA 'gz av 
"391 ‘08Z 


 jeqedwoy-eiddy ‘M8r ‘Id-Il NOSIN 


JO9VJ43LNI31d4V 


485 a4 Iv3l 


EOELEES-0E0 UojsloL 


ıyN E1-01 eS ‘yN 81-51 '0Q 'n 'IW 
youmSyog ueysIeZ 08 


ISMW 'Mul "YOIS old asıald 
" TE SH 'SOINOHLN3D ‘'WOHd3 “IVd 


"wis jsqıyedwoy-ejddy YoeıL Or ‘E01 AT 
" yoyedoyny POaJV 1e1l04U0Q-Iyd-ı 


“un 8l-ZL 14 'n 'oW Ineyusnuepe 
"sie IJyES SQ YOeIL 08 SYF VS Mebnys 


J O4HOIW-INOLSaNZıL 3 


J04 ww 8 031 
"YOIS OL Ileysedns Joy wwg 37 
0E02 vaL 

00 LOHPZ 

00 SIrı 

NdO v08Z 

NdO 08Z 

SU0SZ-99212 

SU0SZ-821212 

su0S2-#912 

SU0SF-ZEL2 

su0gr-91212 

(9L02 WYS) E419119 

SLO 9SZIr WINL 


4810NY P9Lr YSWN 
sU002-9, 17 AdN 


Wa 08'L+ NN !aq ‘YA Jepo NN Jed puesuen 
— 5 6 052 sıq :Bunyoediey pun oyod !Wa —'OL+ Isuos wa —'0$ 


Sr ulag 0001 - 22 


—ı| 


Yomjlelssqjsspumy "y 'e ujeyelsusßusyy pun sjleineg also 
081 
12 


06 — 
05° 
092 





Peeker 6/85 








ZUSATZ-KARTEN: 


V-24-Schnittstelle ............ 199,- Z-80-Karte ...... 2.22.2222... 139,- 
80-Zeichen-Karte m.Softswitch 236,- 16K-Language-Karte ......... 138,- 
Centronics-Karte von Epson für Graphik... . 210,- für Text... .145,- 
Centronics-Schnittstelle für 2 Drucker gleichzeitig .........- 22222... 129,- 
er ee a a ee a Bene 198,- 
uper-Eprommer 239, 
Su keinen pP incl. Software für 2708-27128 ............ - 
128- K-Karte ee N Re rer auf Anlage 
FDC 4 für alle Laufwerke PPY- ‚ Bausatz wielinks ............ 179,- 
Leerplatine wie oben incl. Prom u. En ISFLEAIUR ı EIRRSBE ERS EIER RAS 130,- 


Auto opatch- -Controller erniconrosen 


1x35bis2x8 Disk, keine Patch-Disk notwendig, Patch DOS 3.3, Diversi- 
DOS C, 4-C (DD MOVER), Pascal 1.1, Pascal 1.2, CPM 2.2, ‚ProDOSy 
IOTL TE ER . Sie ee die Laufwerke untereinander mischen 98, Sa 


Gehäuse für 15%" Slimline Laufwerk ..... 22mm n en 39,- 
Gehäuse für 2 5%’ Slimline Laufwerke mit Platz für ein Netzteil ......... 159,- 
Gehäuse für 2 3%" Slimline Laufwerke mit Platz für ein Netzteil .......... 79,- 
VBIRP-GONENER ; : ua ee De anne en 229,- 
Floppy-Kabel 34pol. für 2 Laufwerke mit Shugart-Bus ...........2.2.... 35,- 


Preh Commander Keyboards 


Wir bieten Ihnen die Preh-Qualität auch für Apple. AK 88 Spez. mit Gehäuse, An- 
schlußkabel, Zehner-Tastenfeld, dt. Zeichensatz, Snderteten für 

Gtri-Codes und Rechenfunklionen 2.2.04 4....:= 2 339,- 
Preh Commander Keyboard AK 87, frei programmierbar 

bis zu 10 Ebenen, pro Taste bis zu 250 Zeichen ..................... nur 559, = 


TEAC 3%" Laufwerk FD 35 P579.- 


Speicherkapazität 1 MB, (formatiert 640 KB) jetzt fürnur ........ 





Nicheneies Preissenkung beit TEAC: 





TEACFD55A 11x40 Track ..... 498,- TEACFD55B2x40 Track ..... 579,- 
TEACFD55E1x80 Track ..... 535,- TEACFD55F2x80 Track ..... 598,- 
Philipps Slimline Floppy X3134. A, 2x80 Track solange Vorrat ......... nur 569,- 
FIEBER SE x BU Mack, 26 Bath. Sen sennic nn green nur 459,- 
SONY 3V4" Laufwerk... 2.222 en nur 799,- 
Sony Laufwerk für Ic .......... auf Anfrage 
Apple®-kompatibles Laufwerk incl. Gehäuse + Kabel ........ 222... 599,- 
EPSON FX80 ................ 1670,- EPSONFX100 .............. 2159,- 
EPSONRX8O .............. 1079,- EPSONRXB8OFT ............ 1295,- 
Patch-Diskette für SONY 3%" Laufwerke — ermöglicht die Anpassung an Il/Ile und 
kompatible Computer .......... 80,- Manual vorab 15,-DM (wird beim Kauf 
der Patch-Diskette angerechnet). dto. für 544” Laufwerke ........ 69,- 
Disketten Döb&Böd SS/DD 10St. 62,- 10 Disketten f.Sony 31%” Laufw. .150,- 
Akustikkoppler AK 300 mit FTZ-Nr. incl. Netzteil ...... 2222 2c22222... 549,- 





Die Microfloppy mit Zukunft: 


Speicherkapazität: 2 x 1 MByte for- 
matiert: 2x 640 kByte. Anschlußfertig 
mit PROM-residenter Patchsoftware 
für CP/M 2.2, Apple DOS 3.3, Diversi- 
DOS 2-C, 4-C (DD MOVER), Apple 
Pascal 1.1, Pascal 1.2, Pro-DOS 


un um 1640,- os 
10. MB Winchester EIER: 4490,- 


... Sonderangebot 
p hilipps 2x80 Track, BBauh. ......=..2r0000.. 459,- 


Gesamt-Preisliste anfordern! 





Preise inclusive gesetzlicher Mehrwertsteuer. 


SS] NICH -1Y-Targejslen 


m le] LAN WL 
EYEICH TREE 


DFÜ 02373/66877 
Tel. 02373/63159 





15 








Der Apple Ile mit erweiterter 80-Zeichen- 
Karte und der IIc verfügen über eine hoch- 
auflösende Grafik von 560 & 192 Punkten. 
Dieser Bericht zeigt, wie man Ähnliches 
auch mit dem Apple Il Plus und Kompati- 
blen erreicht. 


Wie man weiß, verfügt der Apple in Farbe 
praktisch nur über eine Auflösung von 140 
* 192 Punkten, da bei den Farben 1, 2,5 
und 6 nur jeder zweite Punkt gezeichnet 
wird. Ich selbst verzichtete daher in mei- 
nen früheren Programmen meist auf Far- 
ben, da ich zum einen auf die volle Auflö- 
sung Wert lege und zum anderen nicht 
über einen Farbbildschirm verfüge — wie 
wohl sehr viele andere auch. 


Neuerdings experimentiere ich damit, dem 
Apple eine höhere Auflösung zu verschaf- 
fen, indem ich das Farbbit gezielt einsetze, 
was auf Grün-Monitoren eine etwas ande- 
re Wirkung als auf Farbbildschirmen hat. 
Zum Einstieg schlage ich Ihnen vor, zu- 
nächst das Programm WANDERNDER- 
‚STRICH einzugeben. Sie sehen nach 
dem Start zwei Striche, die sich von links 
nach rechts über den Bildschirm bewe- 
gen. Dabei macht der obere 560, der unte- 
re aber nur 280 Schritte. Wie ist dies nun 
zu erklären? 


Es sei zunächst die Art beschrieben, wie 
der Apple seine Grafik abspeichert. Pro 
Zeile sind wirklich nur 280 Punkte vorhan- 
den, egal was Sie jetzt auch denken mö- 
gen. Diese Punkte werden in 40 Bytes 
abgespeichert, wobei jedes Byte 7 Punkte 
beinhaltet. Es bleibt also ein Bit übrig, wel- 
ches für die farbliche Darstellung von Be- 
deutung ist. Es wird daher das „Farbbit“ 
genannt. Die sieben Punkte sind nun von 
links nach rechts im Byte gespeichert, wo- 
bei man sich vorstellen muß, daß das ganz 
links stehende das niederwertigste Bit ist 
(das linke Bit steht also für den rechten 
Punkt der 7-Punkte-Gruppe usw.). Das 
Farbbit ist das höchstwertige Bit; es befin- 
det sich, wie aus Abb. 1 ersichtlich, ganz 
rechts. Wie die einzelnen Zeilen im Spei- 
cher stehen, interessiert in diesem Zu- 
sammenhang nicht; dazu nur soviel: Sie 
sind aus hardwaretechnischen Gründen 
nicht linear angeordnet, sondern ähnlich 
wie die Textzeilen nach einem bestimmten 
Muster gegliedert. 


Das Farbbit legt nun den Farbmodus für 
die 7 in diesem Byte gespeicherten Punk- 
te fest. Man kann also die Farbe nur „ge- 
bietsweise“ definieren, was ganz beson- 
ders zum Tragen kommt, wenn man einen 
grünen Strich durch eine orangefarbene 
Fläche zeichnen läßt. Bei den Farben O bis 


16 


Bit: 


Das Farbbiıt 


Pseudo-Double-Hires auf dem Apple Il Plus 


3 wird das Farbbit jeweils auf O gesetzt, bei 
den Farben 4 bis 7 jeweils auf 1. Auf 
grünen Monitoren bewirkt das Farbbit nun 
keine Farbveränderung, sondern eine Ver- 
schiebung um einen halben Schritt nach 
rechts, was auf Farbbildschirmen den Ef- 
fekt hat, daß die Punkte auf anderen Far- 
ben des Farbrasters zu liegen kommen. 
Mittels dieses Farbbits kann man nun eine 
pseudo-doppelthochauflösende Grafik 
auch für die älteren Apple-Versionen 
schaffen. Es gibt dabei zwei Methoden, mit 
deren Hilfe stehende Bilder höher aufge- 
löst erscheinen: 


Wert : 


Bedeutung: | nk 


Abbildung 1 


Die erste Methode 


Methode 1 besteht darin, daß man bei den 
Punkten, die eigentlich bei einem Kreis 
oder einem Strich zwischen den normalen 
Punkten stehen müßten, das Farbbit auf 1 
setzt, wodurch dieser Punkt um einen hal- 
ben Schritt nach rechts verschoben wird. 
Ich habe diese Technik bei dem Programm 
KREIS.1 angewandt, bei dem das Farbbit 
mit Hilfe von „HCOLOR =3+4x(S-.5 


von H.-D. Siewert 


> INT(S))" einmal gesetzt wird und einmal 
nicht. Dabei ist der logische Ausdruck „(S 
-5 > (INT (S))“ gleich 1, wenn hinter dem 
Komma bei S ein Wert steht, der größer 
als 0,5 ist. Das Programm zeichnet zwei 
Kreise, von denen der eine normal und der 
andere höher aufgelöst ist. Diese Methode 
hat natürlich ihre Vor- und Nachteile. Vor- 
teile: Das Bild erscheint höher aufgelöst 
und steht ruhig. Nachteile: Es sind nur 280 
Punkte pro Zeile möglich und man kann 
die Verschiebung der Punkte genau wie 
die Farbe nur 7-punkteweise bestimmen. 





Die zweite Methode 


Methode 2 besteht darin, daß man die 
normalen Punkte auf die eine Grafikseite 
und die verschobenen Punkte auf die an- 
dere Seite zeichnet. Um beide Bilder zu- 
sammenzubringen, muß ständig zwischen 
den beiden Seiten hin- und hergeschaltet 
werden. Das Programm für dieses Um- 
schalten ist aus Geschwindigkeitsgründen 
in Assembler geschrieben und heißt FLIP- 


Peeker 6/85 








PER (abzuspeichern mit „BSAVE FLIP- 
PER, A$300 ‚L$30“). Das Applesoft-Pro- 
gramm, das die entsprechenden Grafiken 
zeichnet (wieder zwei Kreise), heißt 
KREIS.2. KREIS.3 zeichnet 3 Kreise, und 
zwar den linken nach Methode 2, den miitt- 
leren mit normaler Auflösung und den 
rechten nach Methode 1. Methode 2 hat 
den Vorteil, daß wirklich 560 Punkte dar- 
gestellt werden können, nachteilig ist je- 
doch, daß das Bild flimmert. 

Es hängt vom Einzelfall ab, welche Metho- 
de man verwendet, da keine allgemeingül- 
tigen Regeln aufgestellt werden können. 
Zu sagen bleibt, daß sich manche Bilder 
mit keiner der beiden von mir vorgestellten 
Möglichkeiten darstellen lassen. Dazu ge- 
hören vor allen Dingen Bilder, bei denen 
zu viele feine Einzelheiten zu sehen sind. 
Will man also eine echte Auflösung von 
560 * 192 Punkten, so ist doch ein Apple 
Ile mit erweiterter 80-Zeichenkarte oder 
ein IIc vorzuziehen. 

Damit Sie aber auch die pseudo-doppelt- 
hochauflösende Grafik ausprobieren kön- 
nen, habe ich das Programm KOMPRES- 
SOR geschrieben, das mit „BSAVE KOM- 
PRESSOR, A$8000, L$E9" gespeichert 
werden soll. Dieses Programm faßt die 
Bilder beider Grafikseiten auf einer einzi- 
gen Seite zusammen. Die genauere Ar- 
beitsweise ist aus Abb. 2 und 3 zu erse- 
hen. Es werden die Punkte der beiden 
Seiten abwechselnd auf Seite 1 und auf 


Appie und IBM 
kompatible Gomputer 


16K, Z80, Diskcontroler je 

80 Zeichenkarte mit Softswitch 
2 Zeichensätze 

Motherboard 48K ohne 

Firmware 

Erphi-controler mit Autopatch 

Siemenslaufwerk F 122 

Philips X3134 2x80 Track 

TEAC FD-55B2x40 Track 

TEAC FD-55F 2x80 Track 


Megaboard (Mainboard XT) 


Neu: Stardrucker SG 10 
Drive Controler 


Monochrome Monitore 

Farbmonitore 

Tastaturen für IBM und Apple ab 330,— 
Versand nur per Nachnahme oder Vorkasse 
Weiteres Zubehör für Apple und IBM gegen 
frankierten Rückumschlag. 


Preissenkung: 
Saturn 128K Karte 


Ulf Mohwinkel Electronic 
Berliner Straße 73 
5090 Leverkusen Fettehenne 
Telefon 02 14/9 3781 





Peeker 6/85 


Seite 2 gespeichert. Dabei ist auf Seite 1 
das Farbbit stets auf 0, auf Seite 2 hinge- 
gen immer auf 1 gesetzt. Wenn man nun 
mit FLIPPER zwischen den beiden Seiten 
hin- und herschaltet, wirkt das Bild dop- 
pelthochaufgelöst. Wie man KOMPRES- 
SOR anwenden kann, können Sie aus 
dem Programm KOMPRESSOR.DEMO 
ersehen. Will man ein hochaufgelöstes 
Bild erstellen, so zeichnet man auf Seite 1 
die eine und auf Seite 2 die andere Hälfte 
des Bildes, läßt den KOMPRESSOR seine 
Arbeit verrichten und startet dann 
FLIPPER. 


Byte 0 Byte 1 
von HGR 


> — 
7a a0 N 12 13] Fatbingiic 


gültig 


dh „Kompressor’’ 


0246810 12 


Farbbit : O 


13981,.92 3338 Farbbit : 1 





Byte O von H6GR 1 


Byte O von HGR2 


Abbildung 2 


Zusammenfassend ist zu sagen, daß man 
durch meine Methoden nur in Ausnahme- 
fällen etwas Ähnliches wie eine doppelt- 
hochauflösende Grafik erzeugen kann. Es 


Messen ‚Steuern 
Regeln 


ul 1708: 
oder Kompatiblen 


Peripheriekarten für 
technische Anwendungen: 


+ Parallelports 

+ A/D-Wandler 

+ RS 232C-Schhnittstelle 

+ Real/Time Clock 
außerdem: 

+ Opto. Ein/Ausgabekarten 


Information und Händleranfragen bei: 


Entwicklungsbüro Brecht 
Uhlandstraße 70 

7012 Fellbach-Schmiden 
Telefon (0711) 51 41 60 





arafık 4.4 


gibt aber noch andere Anwendungen für 
das Farbbit, die nicht mit Farbe, sondern 
mehr mit Auflösung zu tun haben — im 
Bereich der Animation. Objekte, die sich 
waagerecht über den Bildschirm bewe- 
gen, wie z.B. der wandernde Strich, kön- 
nen so wesentlich feinere Schritte aus- 
führen. 





Abbildung 3 


Ich hoffe, daß möglichst viele Leser durch 
diesen Artikel zum Experimentieren ange- 
regt wurden, und wünsche allen dabei viel 
Erfolg. 


I Preisliste 
kostenlos! 


Unser Angebot im Juni 


Drucker Star SG-10 


DM 898,— 
DM 118,— 


schönschreib- und grafikfähig 
grafikfähiges Interface hierzu 


D.O.S. Computersysteme 


Am Kühnbach 42, 7170 Schwäbisch Hall 11 
Telefon (0791) 51736 





17 


WANDERNDER.STRICH 60 HGR2 : HCOLOR= 7: HPLOT ®,®: CALL 62454: HCOLOR= ß: 


HPLOT 279,8 TO 9,96 TO 279,191: HPLOT 9,8 TO 
1® REM WANDERNDER.STRICH von H.-D. Siewert, Dez. 1984 279,191: HPLOT 279,8 TO ®,191 


20 HGR : NORMAL : HOME :Y1 = 89:Y2 = 199:B = 25: VTAB 21: 65 REM Auf HGR2 wird ein neues Bild gezeichnet, 
PRINT " DER OBERE STRICH MACHT 569 SCHRITTE!" 7® HGR : POKE - 16392,®: HCOLOR= 7: HPLOT 9,®: CALL 62454: 
5® FOR X = ® TO 279: HCOLOR= 3: HPLOT X,Yl TO X,Y1 + 1: HCOLOR= ®: HPLOT ®,® TO 279,96 TO ®,191: HPLOT @,® 
HPLOT X,Y2 TO X,Y2 + 19: REM Strich 1 und 2 zeichnen TO 279,191: HPLOT 279,8 TO 8,191 
4d FOR A = ® TO B: NEXT : HCOLOR= 7: HPLOT X,Yı TO X,Yl + 75 REM auf HGR wieder die andere Hälfte. 
19: REM Strich 1 einen halben Schritt weiterrücken 80 CALL 32768: CALL 768: REM Es werden erneut KOMPRESSOR 
50 FOR A = ® TO B: NEXT : HCOLOR= ß: HPLOT X,Y1 TO X,Yl + und FLIPPER gestartet - diesmal direkt mit CALL. 
10: HPLOT X,Y2 TO X,Y2 + 19: REM Beide Striche 


wieder löschen FLIPPER 
60 NEXT : TEXT 


KREIS.1 


1® REM KREIS.1 von H.-D. Siewert, Dez. 1984 

28 HGR : NORMAL : HOME :0 = ®:PI = 3.1415926535:P = PI / 
180:X1 = 93:X2 = 186:Y = 90:R = 55 

38 FOR 2 = 0 TO 369: HCOLOR= 3:5 =R # SIN (Z*P):C=R« 
COS (Z *& P): HPLOT X2 + S,Y + C: HCOLOR= 3 +4 x (S 
-— ,5 > INT (S)): HPLOT X1 + S,Y + C: NEXT : REM Zwei 
Kreise zeichnen, davon Kreis 2 normal, Kreis 1 nach 
Methode 1 

Aß HOME : VTAB 21: PRINT " Höhere Auflösung Normale 
Auflösung! 


KREIS.2 


10 REM KREIS.2 von H.-D. Siewert, Dez. 1984 
28 NORMAL : HOME : HGR :0 = ß:P = 3.1415926535 / 180:X1 = 
93:X2 = 186:Y = 90:R = 59 
30 FOR Z = 0 TO 368: HCOLOR= 3:S =R x SIN (Z* P):C=Rx« 
COS (Z *& P): HPLOT X1 + S + .5,Y + C: HCOLOR= 7: 
HPLOT X2 + S,Y + C: NEXT : REM Zwei Kreise auf Seite B300: AD 
l zeichnen, Kreis 1 nach Methode 2, Kreis 2 normal 0303: AD 
HGR2 : FOR Z = 0 TO 360:S =R «SIN (Z « P):C=R x COS B306: AD 
(Z x P): HPLOT X1 + S,Y + C: HPLOTX2 +S,Y+C: 0309: AD 
NEXT : REM Beide Kreise auf Seite 2 zeichnen, Kreis D30C: 29 
2 wie oben, Kreis 1 gegenüber Kreis 1 auf Seite 1 B30F: AD 
modifiziert 0312: 29 
58 PRINT CHR$ (4)'"BRUN FLIPPER": REM FLIPPER starten 0315: 2C 
60 GET XY$: IF XY$ < > CHR$ (27) THEN CALL 768: GOTO 6ß: 0318: 19 
REM Mit ESC kann aus den Programm ausgestiegen B31A: 2C 
werden, wenn das Bild steht B31D: 69 
78 TEXT 


KRRKKKRRKRRRKKTTF RK TR RR 


* 
Flipper * 
* 
* 


Dieses Programm schaltet 
ständig zwischen fullscreen- 
GRAFIK PAGE 1 und 2 hin und x 
her. Von H.-D. Siewert, * 

%* 
* 


voSıo9a Au mdH 


Dezember 1984 


*RKKKKKKKK KH 


HH 
m & 


KAFFFKFFKKFKRFKRFEKRFERFKFRKFK FR FF HK KH TH KR NR 
ORG $399 

NOMIX EQU $c952 

HIRES EQU $c057 

GRAPHIC EQU $c059 

PAGEL EQU $0054 

PAGE2 EQU $c055 

KBD EQU $cppp 

STROBE EQU $c919 

DUMMY EQU $9p9 


DH rrH HH 
SOVOo or IV AU D 


av 
par 


LDA NOMIX 
LDA HIRES 
LDA GRAPHIC 
LDA PAGEI 
JSR WAITLONG 
LDA PAGE2 
JSR WAIT 
BIT KBD 
BPL LOOP 
BIT STROBE 
RTS 
* Verzögerung durch LDA DUMMY 
WAITLONG LDA DUMMY 
WAIT LDY #$pF 
LOOP1 LDX #$09 
LOOP2 INX 
BNE LOOP2 
DEY 
BNE LOOP1 
LDX #$C1 
DEX 
BNE LOOP3 
RTS 


QSQVDODVDDDDUDDWD 
SOovovo ‘91 AP uam 


N 
m 


B31E: A5 
KREIS.3 0320: A® 


0322: A2 
1d REM KREIS.3 von H.-D. Siewert, Dez. 1984 0324: E8 


20 TEXT : NORMAL : HOME : HGR :0 = ®:P = 3.1415926535 / 0325: DY 
180:F = .5:X1 = 70:X2 = 140:X3 = 210:Y = 90:R = 50 0327: 88 
3d FOR Z = 0 TO 369: HCOLOR= 3:S =R #SIN (Z* P):;C=R«* 0328: DP 
COS (Z *& P): REM Sinus- und Cosinuswerte berechnen 0324: A2 
385 HPLOT X1 + S + F,Y + C: HCOLOR= 7: HPLOT X2 + S,Y + C: Ö32C: CA 
HCOLOR= 3 + 4 * (S - F > INT (S)): HPLOT X3 + S,Y + 032D: D® 
C: NEXT : REM Alle drei Kreise auf Seite 1 zeichnen, Ö32F: 6® 
Kreis l nach Methode 2, Kreis 2 normal, Kreis 3 nach 
Methode 1 48 Bytes 
HGR2 : FOR Z = 0 TO 369: HCOLOR= 7:S =R * SIN (Z * 
P)}:C=Rx COS (Z * P): REM Sinus- und Cosinuswerte 
berechnen 
HPLOT X1 + S,Y + C: HPLOT X2 + S,Y + C: HCOLOR= 3 +4 « 
(S- F > INT (S)): HPLOT X3 + S,Y + C: NEXT : REM 
Alle drei Kreise auf Seite 2 zeichnen, Kreis 2 und 3 
wie auf Seite 1, Kreis 3 modifiziert KOMPRESSOR 
50 PRINT CHR$ (4)"BRUN FLIPPER": REM FLIPPER starten 
60 GET XY$: IF XY$ < > CHR$ (27) THEN CALL 768: GOTO 69: 
REM Wenn das Bild steht (FLIPPER außer Betrieb), 
kann man mit ESC das Programm verlassen 
78 TEXT 


KOMPRESSOR.DEMO 


1® REM KOMPRESSOR.DEMO von H.-D. Siewert, Dez. 1984 

20 NORMAL : HOME : HGR2 : HCOLOR= 7: HPLOT 279,0 TO 9,96 
TO 279,191: HPLOT ®,8 TO 279,191: HPLOT 279, TO 
0,191 

25 REM In Zeile 2® wird die eine Hälfte des Bildes auf 
HGR2 gezeichnet. 

30 HGR : POKE - 1632,09: HPLOT 9, TO 279,96 TO 9,191: 
HPLOT 9,8 TO 279,191: HPLOT 279,8 TO 9,191 

35 REM Die andere Hälfte des Bildes wird auf HGR 
gezeichnet. 

A® PRINT CHR$ (4)"BRUN KOMPRESSOR": PRINT CHR$ (4)"BRUN 
FLIPPER" 

50 GET XY$: REM Nachdem das Bild gezeichnet wurde, werden 
KOMPRESSOR und FLIPPER gestartet. 


Do a U a au oa oa Wo 
So oao IV TI AU D 


BRHnH» 
BO DdH 


HINWEIS: Die Zeitverzögerung der Warteschleife kann sehr genau 
abgeglichen werden. Die hier angegebenen Werte wurden 
empirisch ermittelte, um ein maximal flimmerfreies 
Bild zu erhalten. 


BR 
KOMPRESSOR 


Dieses Programm faßt unter 
Ausnutzung des Farbbits 
beide Grafik-Seiten so zu- 
sammen, daß sie nebeneinan- 
der dargestellt werden kön- 
nen 

Von H.-D. Siewert, Dez. 84 


vo oıou uw vr 
«AK KKKKKKFKOKRKH 
x Kr kr: KK 


KRFKFKFFRHFKRHKFRRFRKRFR FR FF FH TH HK FH FH KH FH 
ORG $89090 


EQU $96 
EQU $CE 
EQU $CF 
EQU $FA 
EQU $FC 
EQU $FE 


Dreher H 6b 
SovtvNn9 uw mw Ha 


DD 8 
DD m 





18 Peeker 6/85 














Sie müssen 
käalkulatenen erstellen ... 









Se mussen 
Rechnungen Schreiben... 





Sie müssen Schnell eın 
Angebot usanmenskellen... 









Sie brauchen eine zuver- 


Km Lagervenaltuug 


Daw braucheu Sie 


HandMac 


Das Rrogramm für das Handwerk. 





® Oas Ihnen diese Arbeiten abnimmt 

© das peziel für Sie in Deutschland 
ge wurde 

® das Sie start benutzen können | 
ohue wehrwöchae. Schuluu 
Ome Qitenstar rer, 


HandMac | 


Das Prayrwern für das Handwerk. | 


(äuft auf Apple Macintosh und gibt es nur 
in Autprisıerten Tachlhaudel 


Juforuahou: copy team gmbh 
a Schuhstr. 92 

3520 erlangen 

OUSA— U3S 


Apple und Macintosh ömd eingehngene Wrenzsichen des Apple Coupuler Une. 















Be en.) 
Ba Be B en 


Pod SE DE DE SR SE DE DE DE DE DIE DE DAL DE DIE DIE DE DE DE DIR DIL DE DIL DE DE DIE DIE DIE DIE DIR DIR DIE DIE DIE DIE DE 7 
» ae FREE EEE DE I BE DE DIE DIE DIEBE DIE DIR. DIE DIE DILDIE DIE PIC DI DIE DIL PIE DIDI DIL HIL PIE PI PIPPI) 


Draonon S2lel 
300 Baud Modem, nach CCITT V.21 Standard, 
mit FTZ-Nr. 18.13.1917.00, 

Gebühren- und anmeldefrei, 

V24/RS-232 Standard-Schnittstelle 
(25-Pin), Vollduplexbetrieb, Answer-, 
Originate- und Auto-Modus nur DM 298,00 


TELEKOMMUNIKATIONS _- KOMPLETT - PAKET 
geeignet für Apple //+ und Apple //e: 
I Dataphon s2Id, 
I Anschlußkabel (RS-232-Schnitt- 
stelle zum Apple Il-Gameport), 
I Terminalprogramm: 
"HIB Modem-Transfer” nur DM 398,00 


AKUSTIK-KOPPLER 


TELEKOMMUNIKATION am Apple I IC: 
Anschlußkabel (Akustik-Koppler 

zum Modemport am Apple //c) DM 114,00 
ASCII-PRO (ASCII-Express) 
Kommunikationsprogramm für 

alle Apple //-Rechner geeignet DM 489,00 


Chinon-Laufwerk (Testbericht in Peeker 5/85) 
für Apple //+ und Apple //e 


anschlußfertig im Gehäuse DM 498,00 
w.o. jedoch für Apple //c DM 569,00 
TOSHIBA _Spitzenlaufwerke _ zum _Superpreis! 
ND 06-D, 2 x 80 Track DM 549,00 
ND 04-D, 2 x 40 Track DM 498,00 


DISK-DOPPEL-STATION (APPLE //+ APPLE /le 
2 x ND 06-D im Gehäuse 
+Auto-Patch-Controller DM 1698,00 


AUTO-PATCH-CONTROLLER DM 298,00 


BROTHER-Matrixdrucker, die_Super-Drucker! 
M-1009 (Matrixdrucker 





RS-232 + Centronics) DM 698,00 
M-1009 anschlußfertig an: 

Apple //c (mit Kabel) DM 798,00 
Apple //e (mit Graphik- 

Interface und Kabel) DM 898,00 
HR-15 XL, Typenraddrucker der Spitzenklassel 
mit Centronics-Interface DM 1698,00 
HR-15 XL anschlußfertig an: 

Apple //c DM 1898,00 
Apple //e DM 1998,00 
Apple Macintosh DM 1998,00 
HR-10, der neue Low - Cost - Typenraddrucker 
für alle Rechner geeignet DM 998,00 


Alle Preise inclusive der gesetzlichen Mehrwertsteuer. 
Berechnung der Versandkosten erfolgt nach Entfernung und Gewicht. 
Fordern Sie noch heute unsere Gratispreisliste an! Wiederverkäufer 

bitte nur schriftlich anfragen (Kopie der Gewerbeanmeldung beilegen!). 


o HIB Computerladen 
Außere Bayreuther Str. 72 
Postfach 21 01 25 
8500 Nürnberg 21 
Telefon: 0911 / 515 939 
Telex 17 - 911 8253 





8075: D® EA BNE MOVE 
8077: 60 RTS 
Unterprogramme 
CONVERTA gliedert das erste 
Byte in zwei neue Bytes auf. 
Mit CONVERTB wird das zweite 
Byte aufgegliedert und füllt 
die beiden neuen Bytes auf. 
CALC berechnet die Anfangs- 
adresse der jeweiligen im 
Akkumulator gespeicherten 
Grafikzeile. 
STORE speichert die neuen 
mit CONVERTA und CONVERTB 
gebildeten Bytes ab. 

8078: CONVERTA LSR 

8079: ROR C 

8OTB: LSR 

8DTC: ROR D 

8QTE: LSR 

8OTF: ROR 

8081: LSR 

8082: ROR 

8084: LSR 

8085: ROR 

8087: LSR 

8088: ROR 

EDBA: LSR 

808B: ROR 

808D: RTS 

808E: CONVERTB LSR 

808F: ROR 

8091: LSR 

8092: ROR 

8094: LSR 

8095: ROR 

8097: LSR 

8098: ROR 

SO: LSR 

809B: ROR 

809D: LSR 

809E: ROR 

8DAB: LSR 

8DAl: ROR 
' 8BA3: ROR 

8045: ROR 

80A7: RTS 

8DAB: TAX 

8DA9: AND 

8QAB: STA 

80AD: LSR 

8PAE: LSR 

BOAF: ORA LBAS 

80Bl: STA LBAS 

80B3: TXA 

80B4: STA LBAS+1 

80B6: ASL 

80B7: ASL 

80B8: ASL 

80B9: LBAS+1 

80BB: 

8DBC: LBAS+1 

80BE: 

80BF: LBAS 

80C1: LBAS+1 

80C3: #$1F 

80C5: 

8ödc6E: +$20 

80C8: LBAS+1 

8OCA: 

80CB: +$40 

80CD: MBAS+1 

8ÖCF: +$29 

80D1: HBAS+1 

80D3: LBAS 

80D5: MBAS 

80D7: HBAS 

80D9: 

80DA: 

80DB: D 
STX LOOP+5 8ODD: +$80 


LDA $6000,Y & HBAS),Y 
STA $4000,Y en : E 
INY 80E3: +#$7F 
8DES5: (LBAS),Y 
8DE7: 

8DES: 

#369 233 Bytes 


Als erstes wird das Bild 

in Seite 1 aufgeteilt 

und die eine Hälfte in 

Seite l abgespeichert, 

die andere Hälfte in Seite 3. 
Seite 3 beginnt bei $6Pd9 
und kann ohne Hardware- 
änderungen nicht darge- 
stellt werden. 


*R KK KK KA KH KR 


CLD 

LDA #$09 
STA YPOS 
LDY #$9® 
JSR CALC 

NEXTXl LDA (LBAS),Y 
JSR CONVERTA 
INY 
LDA (LBAS),Y 
JSR CONVERTB 
TYA 
LSR 
JSR STORE 
ASL 
TAY 
INY 
INY 
CPY +#$28 
BNE NEXTX1 
LDA YPOS 
ADC #$09 
CMP #$c® 
BNE NEXTYL1 


“RK KK KKKKAKIFK KINN 


Hier wird dasselbe wie 
oben für Seite 2 durch- 
geführt. Dabei wird wieder 
die eine Hälfte in Seite 1 
und die andere in Seite 3 
gespeichert; diesmal aber 
in der rechten Hälfte der 
beiden Seiten. 


* 
* 
* 
* 
* 
* 
* 
* 
* 
* 


LDA +#$99 

STA YPOS 

LDY +#$99 

JSR CALC 

NEXTX2 LDA (MBAS),Y 

JSR CONVERTA 

INY 

LDA (MBAS),Y 

JSR CONVERTB 

TYA 

LSR 

CLC 

ADC 

JSR 

SEC 

SBC 

ASL 

TAY 

INY 

INY 

CPY #$28 

BNE NEXTX2 

LDA YPOS 

ADC +#$09 

CMP #$c9 

BNE NEXTY2 

CLC 
Hier wird als letztes das 
Bild in Seite 3 nach Seite 2 
bewegt, wo es das alte Bild 
verdeckt. 

LDX #$49 

LDA +#$69 

STA LOOP+2 

LDY #$00 


LOOP 
LOOP+2 





20 Peeker 6/85 


Peeker-Sammeldisketten 


Peeker 
Sammeldiskette 
Heft 1 und 2, 1984 





Disk #3 





Einzelbezug DM 28,— 


INSTRING.TEST (2/84, S. 43) 
INSTRING.OBJ 
T.INSTRING.OBJ 
INSTRING.LISA.SOURCE 


LOESCHEN.EINES.ARRAYS 
(2/84, S. 52) 


ULTRATERM.ENGLISCH * (2/84, S. 60) 


ULTRATERM.DEUTSCH * 


PRIMZAHLEN.OVERMEYER * 
(2/84, S. 70) 

PRIM.OBJO * 

PRIM.OBJ1 * 

PRIM.TEST * 
PRIM.TOOLKIT.SOURCE * 


Disk #2 
(Heft 1-2, 1985, DOS-Format) 


T.VIDEXT 
VIDEXT.LISA.SOURCE 
VIDEXT 


GETPAS (1-2/85, S. 70) 
T.GETPAS.ASS * 

GETPAS.ASS 
GETDOS.PASCAL.SOURCE 
COPYDUPDIR.PASCAL.SOURCE 


PRODOS.EDITOR.MACROS 
(1-2/85, S. 86) 


Disk #3 
(Heft 1-2, 1985, CP/M-Format) 


STEUER.84 (1-2/85, S. 47) 
PASS.BAS 


XPLOT.DEMO (4/85, S. 18) 
XPLOT.ROUTINE 
T.XPLOT.ROUTINE 


MENUE.GENERATOR (4/85, S. 22) 
T.MACROS.65C02 (4/85, S. 31) 


TERMINAL (4/85, S.36) 
TERMINAL.B 
T.TERMINAL.B 


CAT.ARRAY (4/85, S. 44) 
CAT.SAVER 
EINTRAG.SUCHER 
EINTRAG.ANALYSE 
PRODOS.READER 
T.PRODOS.READER.OBJ 
PRODOS.READER.OBJ 


MOUSESTUFF.PASCAL.SOURCE 
(4/85, S. 51) 
MOUSE.ASS.PASCAL.SOURCE 
TESTMOUSE.PASCAL.SOURCE 


T.RAMDISKLC (1-2/85, S. 14) MENUE.BAS DRAWMOUSE.PASCAL.SOURCE 
PoreezungSpezug DM EN RAMDISKLC HELP.BAS * 
(Jederzeit kündbar, jedoch mindestens A.BAS INALL.DATA (4/85, S. 70) 
en BR T.IBS.RAMDISKDRIVER (1-2/85, 5.20) B.BAS SCREEN80.DATA (4/85, S. 33) 
y — NUT ale DIEKBNS niet Im Feeket (ES BAMDISKORIVER C.BAS SCREEN80.SAVER (4/85, S. 76) 
gelistet! Seitenangaben beziehen sich T.AP20.RAMDISKTEST D.BAS 
auf Beginn des Listings) AP20.RAMDISKTEST E.BAS 
Hüthig Software Service FBAS 
Postfach 102869 - 6900 Heidelberg 1 T.QUICKCOPY (1-2/85, S. 26) G.BAS Disk #5 
QUICKCOPY H.BAS (Heft 5 1985, DOS-Format) 
QUICKCOPY.PUFFER .BAS 
PRODOS.COPYA J.BAS T.FM.BSP (6/85, S. 9) 
T.PRODOS.COPYOBJ * K.BAS FM.BSP 
PRODOS.COPYOBJ L.BAS 
Disk+ 1 MLBAS T.SLOTRAMDISK (5/85, S. 13) 
(Heft 1+2, 1984) N.BAS SLOTRAMDISK 
SLOTRAMDISK.HELLO 
T.DISASSEMBLER.65C02 (1/84, S. 15) 
DISASSEMBLER.65C02 PLOT.2.0 (5/85, S. 20) 
T.PLOT.B 
T.ACCEL.WAIT (1/84, S. 22) PLOT.B 
ACCEL.WAIT PLOT.PROTECTOR 
T.ACCEL.BOOT Disk +4 
ACCEL.BOOT (Heft 3 + 4, 1985) T.CONVERT560 (5/85, S. 26) 






ACCEL.LC.KOPIERER 
T.ACCEL.LC.KOPIE 


CONVERT560 
CONVERT560.DEMO 






Peeker 


Sammeldiskette TESTGENERATOR (3/85, S. 26) 


ACCEL.LC.KOPIE Heft 1 und 2, 1985 SAETZE 

T.ACCEL.ROM.KOPIE1 DOS 3.3 BAHNFAHRT * T.EDA (5/85, S. 33) 
ACCEL.ROM.KOPIE1 ZU * EDA 

TACCELROMKOPIEE nn 0. TUN.UND.SOLLEN * 

ACCEL.ROM.KOPIE2 IRGEND * TRANSCEND.PASCAL.SOURCE 


(5/85, S. 36) 
TURTLE.GRAFIK.MIT.REMS (1/84, S.29) 
TURTLE.GRAFIK.OHNE.REMS * 


MULTIPRECISION (3/85, S. 32) 
T.BLOCKTRACER (5/85, S. 51) 


T.WS.TRANSFER (3/85, S. 36) BLOCKTRACER 
DOUBLE.LORES.SOFTSWITCHDEMO a WS.TRANSFER T.BLOCKTRACER1 
(1/84, S. 37) T.WS.TRANSFER.2 * BLOCKTRACER1 


DOUBLE.LORES.APPLESOFT.DEMO 
AMPER.DOUBLE.LORES.DEMO 
T.AMPER.DOUBLE.LORES 
AMPER.DOUBLE.LORES 
T.DOUBLE.LORES 

DOUBLE.LORES 





PRODOS.PATCH (1-2/85, S. 31) 





WS.TRANSFER.2 * 
GETCPM 


PRIM.0.5C.SOURCE (3/85, S. 62) 
PRIM.O.BIN 
PRIM.1.5C.SOURCE 


FORMAT.LC (5/85, S. 56) 
FORMAT.LC.START 
T.DISKDRIVER.DEMO 
DISKDRIVER.DEMO 


T.APPLESOFT.FRE (1-2/85, S. 36) PRIM.1.BIN RANDOM.DEMO (5/85, S. 69) 
HIRES (1/84, S. 41) T.LC.FRE PRIM.FP COLUMN80.DEMO 
T.PRINTHIRES LC.FRE 
PRINTHIRES FRE.TEST ACCELERATOR.ABSTELLEN SUPERDUMP.EPSON (6/85!) 
T.RAM.FRE * (3/85, S. 66) SUPERDUMP.IMAGEWRITER 
DHGR.APSOFT.DEMO (2/84, S. 30) RAM.FRE SUPERDUMP.BILD 


AMPER.DOUBLE.HIRES.BAS T.WILDCARD.TEST * (3/85, S. 72) T.SUPERDUMP 
AMPER.DOUBLE.HIRES T.SCHIRMDISK (1-2/85, S. 44) WILDCARD.TESTI1 * SUPERDUMP 
T.AMPER.DOUBLE.HIRES SCHIRMDISK.LISA.SOURCE T.WILDCARD.TEST2 * EPSON 
DHGR.LINEPLOTTER SCHIRMDISK WILDCARD.TEST2 * IMAGEWRITER 


Peeker 6/85 





21 


Auf vielfachen Wunsch bringen wir hier eine Neuüberarbeitung des im Peeker 
Heft 1/84 vorgestellten Dump-Programms. Bei der Überarbeitung wurde 
besonderer Wert auf die Kompatibilität mit den meisten Druckern und Interfaces 
gelegt. Außerdem bietet SUPERDUMP eine Reihe neuer Features wie Double- 
Hires-Grafik, Druckern von mehreren Bildern nebeneinander usw. 


Superdump 


Das universelle Hires-Grafik-Dump-Programm 


von Jürgen Geiß 
















! 
‘s 
.n.: EI MH er ! =: Er x h : 
= ER . iM E > 5 AL ARN - Y y 
D ee nen u 2 020 ann x u [2 ur IR h . = 22 ; 
HE r ‘ / DZ 2 I Zu. “ \ . : BL’ I y 

H “- . [ j » iz 

Hu Ak r E St: ER. To‘ A 

Hi Bl er = r == 17 a PAAN 
{ . r x = N RE DR 
un | M f ir Feen Y > um, * € 
Fr IT Hl As a sr: \ 
r r fi | Mil u Kar, ’ [7 ; . i r = n A = » won 
=; (Er Klin, are a “ = ring au SE 
(@ no tiö MI ER - , |, & ä 3 
> iR, Dirt. - - - J , € j 
9, u : . un 30 . L ü *. = = Be 2 . 
[IFReTTEL REN! i f *- 3 a. Be N 2 vr nr \ # / “ 
wit UM ta ji ar. A m g (In get OR 4 ö 
HIHI) 3 E > P rss _ Br is 
. e = , n = . R f | 
% "N 
' d % 
\ um « 
| 














WIE 


= BE FEFE SISEESe3BERTIBTBEREEFLLLE! Ah j 
N, / — 








Bild 1: Linke Hälfte, nicht gestaucht 


Nach Veröffentlichung der ersten Version 
riefen viele Leser bei der Peeker-Redak- 
tion an und fragten den ohnehin schon 
gestreßten Chefredakteur Löcher in den 
Bauch. So traten Fragen auf wie „Bei mir 
wird immer nur eine Zeile gedruckt und 
dann nichts mehr!“ oder „Ich habe keinen 
Epson-Drucker, was muß ich modifizie- 
ren?“ usw., die Herr Stiehl natürlich nicht 
alle beantworten konnte. Da aber die 
Peeker-Leser, die nicht gerade einen Ep- 
son-Drucker mit Parallel-Interface besit- 
zen, auch in den Genuß einer Hardcopy 
der Hires-Grafik kommen sollten, mußte 
eine ganz neue Lösung gefunden werden. 
Aus der Aufgabenstellung heraus, eine 
Hardcopy hardwareunabhängig (Drucker, 
Interface) ausgeben zu können, ergaben 
sich zwei Probleme, die gelöst werden 
mußten. 


1. Problem: Die Druckersteuerzeichen 


Wer schon einmal einen Text, der mit 
Steuerzeichen für Fettschrift, Kursivschrift 
etc. gespickt ist, auf zwei Druckern ganz 
verschiedenen Typs ausgegeben hat, der 
wird wissen, daß mindestens einer der 
Ausdrucke total „daneben war“. Nur im 
seltensten Fall findet man zwei Drucker, 
die zueinander vollständig kompatibel 
sind. 

Leider gibt es für Druckersteuerzeichen 
keine Norm außer den wenigen Zeichen 
wie CR (Wagenrücklauf) oder LF (Zeilen- 
vorschub). Aber sogar hier gibt es Unter- 
schiede. Der eine Drucker benötigt ein LF 
nach CR, der andere wiederum nicht. 

So verhält es sich auch mit dem Umschal- 
ten auf Grafikbetrieb. Epson verlangt bei- 
spielsweise <ESC> „K“ und anschlie- 
Bend die Anzahl der Grafik-Bytes im Low/ 
high-Format, Apples Imagewriter dagegen 
<ESC> „G0280“ für 280 Grafik-Bytes. 


Peeker 6/85 





Bild 2: Beide Hälften, gestaucht 


Man kann also von einem Programmierer 
nicht verlangen, daß er die Steuercodes 
aller Drucker kennt. Wenn nicht er, wer 
aber dann? Nehmen wir doch der Einfach- 
heit halber einmal den Druckerbesitzer 
(oder auch nur den Anwender). Beim Aus- 
packen eines Druckers findet man übli- 
cherweise ein mehr oder weniger gutes 
Handbuch mit einer Tabelle aller für diesen 
Drucker gültigen Steuerzeichen. 


Hier muß nun der Programmierer anset- 
zen. Er verlangt vom Benutzer, daß er im 
Handbuch die nötigen Steuercodes nach- 
schlägt und die Daten dem Programm zu- 
kommen läßt. Leider gibt es ein noch 
schwierigeres Problem, was tage- (und 
nächte-)langes Brüten verursachte. 


2. Problem: Das Interface 


Es gibt weitaus mehr Schnittstellen denn 
Drucker. Es gibt deren so viele, daß der 
Programmierer unmöglich wissen kann, 
wie diese softwaremäßig anzusteuern 
sind. Nun besteht natürlich die Möglich- 
keit, von Applesoft aus mittels des PR#- 
Befehls die Ausgabe vom Bildschirm auf 
den Drucker umzulenken, um anschlie- 
Bend von Assembler aus über $FDED (= 
COUT = Character Output) die Zeichen an 
den Drucker zu senden. Die Sache hat 
allerdings einen Haken. Beim Drucken von 
Grafiken können alle möglichen Bitmuster 
(von $00 bis $FF) auftreten. Da es aber für 
jedes Interface wiederum Steuerzeichen 
gibt, um es zu programmieren, kann es 
vorkommen, daß der „Command-Charac- 
ter“ auch bei einem auszudruckenden Bit- 
muster auftritt. Bei einem parallelen oder 
seriellen Interface ist dies zum Beispiel ein 
<Ctrl-]I> CHR$(9). Dieses Grafik-Byte 
und einige darauffolgende würden dann 
vom Interface verschluckt werden. 


Leider kann das Interface-Problem nicht 
auf den Anwender abgewälzt werden, da 
dieser genaue Kenntnisse über die Firm- 
ware seines Interfaces haben müßte, um 
zu erkennen, welche I/O-Adressen für 
seine Karte zuständig sind. Das aber kann 
man nicht von ihm verlangen. Also was 
tun? 

Wer sich schon näher mit dem Pascal- 
Betriebssystem, insbesondere mit dem 
BIOS (Basic Input Output System) befaßt 
hat, findet eine Lösung dieses Problems. 
Pascal erkennt fast alle Schnittstellen und 
arbeitet problemlos mit ihnen. 

Dies funktioniert wie folgt: 


1. Hole das 5. und 7. Byte aus dem ROM 
des jeweiligen Slots (bei SUPERDUMP 
nur $C105 und $C107) und vergleiche die 
Werte mit einer Tabelle für die verschiede- 
nen Interface-Typen. Es gibt deren 5: Pa- 
rallel-, Seriell-», Communications-, Disk- 
und Firmware-Karten. 


2. Sende das Zeichen entweder über die 
genormten I/O-Adressen gemäß den obi- 
gen Typen (bei Parallel- oder Communica- 
tions-Karte) oder springe die genormten 
Adressen im Slot- bzw. im ROM-Bereich 
an (bei Seriell- oder Firmware-Karten). 


Bei letzteren gibt es allerdings noch eine 
Sonderregel, die unbedingt beachtet wer- 
den muß. Da bei diesen Karten direkt in 
das ROM der Karte gesprungen wird, 
übernehmen diese wieder die weitere 
Steuerung und eventuelle Filterung durch 
den „Command-Character“. Bei diesen 
Karten gibt es aber meistens einen Steu- 
ercode, der einmalig gesendet werden 
muß, um zu verhindern, daß irgendwelche 
Bitmuster als Steuercode interpretiert wer- 
den. Bei Apples Super-Serial-Interface 
(SSC) ist dies z.B. <Ctrl-I> „Z“ <RE- 


23 








TURN> (siehe Handbuch), was von Ap- 
plesoft aus leicht durch folgende Zeilen 
realisierbar wäre: 

10 PRINT CHR$(4); “PR#1“ 

20 PRINT CHR$(9); "Z“ 

30 PRINT CHR$(4); “PR#0“ 

Wenn also nach anfänglich erfolgreichem 
Drucken auf einmal Buchstaben statt Gra- 
fik gedruckt werden, dann erst im Hand- 
buch zum Interface nachschlagen, ob es 
nicht solch einen Code gibt und diesen 
dann vor dem Drucken senden. 

Nun aber genug der Theorie. 


I M M IN] 1 1] zu Il 
ie A Il # AN 


ni on " E P =. Earl; 





Bild 3: Normales Double-Hires-Bild 


Was bietet SUPERDUMP? 


Da nicht alle Peeker-Leser auf das Heft 1/ 
84 zurückgreifen können, folgt hier eine 
Aufzählung aller Features von SUPER- 
DUMP: 


® durch Angabe eines Kontrollblocks für 
Druckersteuerzeichen druckerunab- 
hängig, 

® i-, 2-, oder Afacher Druck (für beson- 
ders schwarze Dumps), 


® positiver oder negativer Druck 
(schwarz auf weiß oder weiß auf 
schwarz), 


® horizontaler oder vertikaler Druck, 

® Umrandung von Bildern, 

® durch Angabe der Bildadresse (z.B. 
$2000 für Seite 1) speicherunab- 
hängig, 

@® mehrere Bilder können nebeneinander 
wiederholt werden, 

®@ Bildauschnitte können gewählt werden, 

® Vergrößerung in X- und Y-Richtung 
(Zoom), 

® Dump der Apple Ile/lic Double-Hires- 
Grafik direkt aus dem Bildspeicher, 

® automatischer Zeilenvorschub bei CR 
ein/ausschaltbar, 

® Drucken eines großen Bildes durch 
Aufspaltung in Teilbilder, 

® Richtung der Druckernadeln wählbar, 

® Konvertierung von Double-Hires-Bil- 
dern nach normal und umgekehrt. 


24 


Diese Features werden durch die sog. 


Übergabeparameter in der Seite 3 
($0300) gewählt, die in Tabelle 1 zusam- 
mengestellt sind. Es folgt eine nähere Er- 
lauterung einzelner Parameter: 


Kontrollblock-Nummer ($0300) — Wie 
oben erwähnt, gelten für verschiedene 
Drucker verschiedene Steuerzeichen. 
Diese müssen in einem oder mehreren 
Kontrollblocks (KB) abgelegt werden. Mit 
der Übergabe der KB-Nummer kann einer 
der Blöcke selektiert werden (z.B. zur Ein- 
stellung von Horizontal- oder Vertikal- 
druck). Der Aufbau eines Kontrollblocks 
sieht wie folgt aus: 


Die Länge eines KBs beträgt 64 Bytes. 
Diese leitet sich ab aus der Länge von 4 
Strings zu je 15 Zeichen, an deren Beginn 
das Länge-Byte stehen muß. Die 4 Strings 
haben folgende Bedeutung: 

—- String #1 = Pinit: Beinhaltet die Initiali- 
sierungssteuerzeichen wie Zeilenabstand, 
unidirektionaler Druck etc., die zu Beginn 
eines Druckvorgangs einmalig gesendet 
werden müssen. Achtung: Der Zeilenab- 
stand muß bei horizontalem Druck 8 Na- 
deln, bei vertikalem Druck 7 Nadeln be- 
tragen. 

— String #2 = Pline: Steuerzeichen zum 
Umschalten des Druckers auf den Grafik- 
betrieb. Diese Zeichen werden vor jeder 
Druckzeile ausgegeben. 

— String #3 = PIf1: Steuerzeichen für 1/ 
216“ oder 1/144“ Zeilenvorschub (wird 


nur bei 2- und Afach-Druck benutzt). 


— String #4 = Pexit: abschließende Steu- 
erzeichen wie bidirektionaler Druck, Zei- 
lenabstand auf alten Wert etc. 


In Tabellen 2 sind die Werte für die Ep- 
son-Drucker und den Imagewriter wieder- 
gegeben. Diese Hex-Dumps sollten durch 
BSAVE EPSON (oder IMAGEWRITER), 
A$9000, L$80 gespeichert werden. 

Bei der Erstellung eigener Kontrollblöcke 
ist zu beachten, daß sich die Parameter- 
blöcke nicht mit dem Assembler- ($8000- 
$86C6) oder einem Applesoft-Programm 
(ab $0800) überlappen. 


Mehrfachdruck ($0304) — Bei 2- und 
Afachem Druck wird versucht, das Papier 
um 1/216°“ oder 1/144” vorwärts zu 
schieben, um nochmals die gleiche Zeile 
zu drucken. Der aufmerksame Leser, der 
einen Epson-Drucker besitzt, wird viel- 
leicht bemerkt haben, daß bei Pinit der 
Zeilenabstand des Druckers nicht wie er- 
wartet auf 24/3 = 8 Bits initialisiert wurde, 


sondern nur auf 23/3 Nadeln. Die restliche 
1/3 Nadel besorgt dann der PIf1-String. 
Auch bei einfachem Druck wird dieser 
String zum Drucker gesendet, wenn er 
nicht die Länge O hat. Es wird dann ledig- 
lich der fehlende Zeilenvorschub nachge- 
holt. Wer will, kann auch in Tabelle 2 den 
Abstand auf 24:3 = 8 Bits stellen und 
den PIf1-String auf O setzen. Für vertika- 
len Druck gilt dasselbe. 


Teilbilder ($0322) — An dieser Stelle 
möchte ich mich ganz herzlich für die posi- 
tive Kritik an der Erstversion des Dump- 
Programms von Herrn N.G. Barbieri be- 
danken, bei dessen Graf-quattro-Editor 
(Peeker Heft 4/85) diese Neuversion 
durch den DiffPics-Parameter (wie er im 
Assemblerlisting genannt wird) bestimmt 
Verwendung finden wird. Beim Drucken 
seiner 560 * 384-Punkte-Grafiken muß 
dann wie folgt vorgegangen werden: La- 
den der beiden Teilbilder 1 und 2 in Hires- 
Seite 1 und 2, Parameter wie im Beispiel 
angegeben setzen, dann die Bilder 3 und 
4 laden und nochmals drucken (wie oben). 


Kommando-Byte ($0326) — Anwendung 
für Kommando 1 und 2: Vor dem Abspei- 
chern eines Double-Hires-Bildes muß die- 
ses aus der 64K-Karte in das Main-RAM 
geschoben werden (1); nach dem Laden 
entsprechend umgekehrt (2). 


Modifizierung und Anwendung der 
Programme 


Das Assembler-Programm muß mit 
„BRUN SUPERDUMP gestartet werden, 
nachdem es mit „BSAVE SUPERDUMP, 
A$8000, L$6C7“ gespeichert wurde, und 
kann dann von Applesoft aus über den &- 
Vektor aufgerufen werden. 

Wegen der Länge des Quelltextes, der 
mehr als 1000 Zeilen umfaßt, kann hier nur 
ein Hex-Dump abgedruckt werden. 

Für all diejenigen, die die Paramaterüber- 
gabe in Seite 3 nicht selbst übernehmen 
wollen, gibt es die Applesoft-Rahmenpro- 
gramme SUPERDUMP.IMAGEWRITER 
und SUPERDUMP.EPSON, die dies be- 
sorgen. Für andere Drucker müssen fol- 
gende Zeilen geändert werden: 


1000: PF$ ist der Printerfile, in dem die 
Grafiksteuerzeichen stehen. Dieser File 
muß vorher, am besten mit dem Drucker- 
namen, abgespeichert werden. Dabei 
spielt die Adresse keine Rolle, denn diese 
wird in Zeile 1500-1510 nach dem Laden 
automatisch ermittelt. Achtung: Dies gilt 
nur für DOS 3.3 und nicht für ProDOS! Am 


Peeker 6/85 








besten benutzt man Block #0 des Printer- 
files für horizontalen und Block #1 für 
vertikalen Druck (siehe Tabelle 2). 

1010: DG ist der Grundeinstellungswert 
des Grafikmodus des benutzten Druckers, 
wenn ein Double-Hires-Bild mittels 
Grundeinstellung gedruckt werden soll. 
Da ein Double-Hires-Bild in X-Richtung 
doppelt so eng auf dem Bildschirm er- 
scheint, sollte auch für den Drucker ein 
entsprechend enger Grafikmodus gewählt 
werden. Beim Epson sollte dieser Wert 2 
(960-Punkte-Grafik), beim Imagewriter 4 
(1152-Punkte-Grafik) sein. 

1020: NG ist der Grundeinstellungswert 
für die Richtung der Drucknadeln. Für ei- 
nen Epson-Drucker muß dieser Wert O 
sein, für Imagewriter 1. 

3280-3350: Diese Zeilen haben folgende 
Bedeutung: Sie stellen dem Benutzer die 
Anzahl der Grafik-Bytes pro Druckzeile in 
3 verschiedenen Formaten zur Verfügung: 
1. BT ist die Anzahl der Bytes als Integer- 
Zahl | 

2. BL, BH ist die Anzahl der Bytes im Low/ 
high-Format (für Epson-Drucker etc.) 

3. BT$ ist die Anzahl der Bytes im String- 
format (für Imagewriter etc.) 

3400 - Ende: Menü der verschiedenen 
Grafikmodi für einen speziellen Drucker 
(siehe entsprechende Werte für Epson 
und Imagewriter). Die Modi entnimmt man 
den Druckerhandbüchern. Anschließend 
muß die Anzahl der Grafik-Bytes in den 
entsprechenden Parameterblock gepokt 
werden. Dies besorgen die letzen 2 
Zeilen. 


Achtung: Die Länge des Applesoft-Pro- 
gramms inklusive Variablen sollte $2000 
nicht überschreiten, wenn aus Seite 1 ge- 
druckt werden soll. 


Hinweis für Assembler-Programmierer, 
die das Applesoft-Rahmenprogramm nicht 
benutzen wollen: Die Parameter auf Seite 
3 müssen selbst an das Druckprogramm 
übergeben werden. Diese können aber 
vorher schon abgespeichert worden sein 
und brauchen dann nur noch — wie auch 
der Printerfile für die Druckersteuerzei- 
chen — geladen werden. 


Für die Benutzung der Applesoft-Rahmen- 
programme sind in Tabellen 3 die Einga- 
ben für die einzelnen Beispielbilder wie- 
dergegeben. 

Und nun viel Spaß beim Drucken. Übri- 
gens: Wenn nicht alles gleich auf Anhieb 
klappt, nicht verzagen. Erst probieren, 
dann anrufen. 


Peeker 6/85 


Hinweis: Wegen der großen Nachfrage 
wurde SUPERDUMP in den Versionen für 
Imagewriter und Epson bereits in die 
Peeker-Sammeldisk #5 aufgenommen 


SUPERDUMP 
BSAVE SUPERDUMP, A$8009, L$6C7 


$s000: A9 11 8D F6 P3 AY 80 8D 
$sods: FT 03 20 CA 85 20 FB 85 
$801P: AD 26 93 FP c9 @1 
$8P18: 03 AC E3 84 02 D® 
$802P: 4C E9 84 C9 D® #3 
$8028: 48 85 C9 4A 03 AC 
$803P: 85 69 AD 1E FO 12 
$8038: 6D 83 AD 54 AD 57 
$8049: AD 5E CO 8D cp 
$8048: CO AD PA 93 03 
$805P: 83 20 AA 83 08 
$8058: 03 AC 8l El 
$806P: 16 93 31 A9 
$8068: 39 93 8F AD 
$8079: CD IC Fo EE 
$8078: 4C 6B AD 03 
$808P: 08 8D 03 18 
$8088: DC F® ac 83 
H809p: 83 29 80 3E 
58098: 3A 03 F5 9C 
$8HAP: 5D 83 d4 Ed 
$8HAB: 07 E® Dp 29 
$80BP: 20 2F 20 80 
$80B8: 83 CE 03 F5 
$80CQ: 83 69 "W) 3D 
$80C8: 12 93 38 AC 
$80DP: sc 34 AD 03 
$8HD8: 03 A9 8D 03 
$8QEP: 03 29 84 c9 
$8QES: 38 93 CA FC 
$8pFp: 03 CE d3 IF 
$80F8: 03 CD 03 6 
$819p: 03 AC 80 FF 
$8198: 03 DA 36 D® 
$811P: 3F 03 B2 A® 
$8118: 32 03 1C 
$8129: 03 8E 
$8128: n]) E8 
$8139: D® CE 
$8138: E8 DC 
$8149: 8E 08 
$8148: 03 02 
$8159: 2A CE 
$8158: EA 20 
$8169: 1A 83 
$8168: AC 15 
$8179: AD 

$8178: EE 

$8189: 

$8188: 

$8199: 

$8198: 

H81AB: 

H81A8: 

$81BP: 

$81B8: 

HElcQ: 

$8lc8: 

$81D9: 

$81D8: 

$81EP: 

$81ES: 

$81Fß: 

$81F8: 

58299: 

58298: 

58219: 

$8218: 

$8229: 

$8228: 

$8239: 

$8238: 

58249: 

58248: 

$8259: 











25 


125® REM 
1260 TEXT : PRINT CHR$ (12): HOME 
1270 PRINT" akakak aka akaleakakakakakakakakakakakakaenk"" 
1280 PRINT "*x SUPERDUMP x" 
1298 PRINT "* von Jürgen Geiß x" 
1300 PRINT "x März 1985 u 
131® PRINT!" akakak aka ak aka ak aka ak aleaeak akeaakakakak ak "" 
1328 PRINT : PRINT D$"BRUN SUPERDUMP" 
1330 PRINT : PRINT "Augenblicklicher Drucker: ";PF$; 
1348 PRINT : PRINT "Schnittstelle: "; 
1350 ON PEEK (IN) GOTO 1369,137®,1389,1399, 1499, 1419 
1369 "Super-Serielle": GOTO 1429 
1379 = "Disk-Controller": GOTO 142® 
1389 "Communications": GOTO 142® 
1399 "Serielle'": GOTO 142® 
1490 = "Parallele": GOTO 142® 
1419 "Firmware" 
1428 PRINT S$;" Karte"; 
1430 PRINT : PRINT "Apple //e Double-Hires-Grafik? 
(J/N)";: GOSUB 2159 
1440 IF A$ < > "J" GOTO 1479 
1450 POKE 49153,®: POKE 49165,9:X = PEEK (49246): REM 
Softswitches für Apple //e 
146® PRINT : PRINT D$"PR#3";:D = 1 
1470 PRINT : PRINT "Bild speichern? (J/N)";: GOSUB 2159 
1480 IF A$ < > "J" GOTO 1529 
1490 L$ = "L$2009" 
1500 IF D = 1 THEN POKE CO,1: & :L$ = "L$4900" 
1510 PRINT : PRINT D$"BSAVE BILD, A$2009,";L$ 
1528 PRINT : PRINT D$"BLOAD";PF$ 
1530 Pl = PEEK (43634): REM Adresse des zuletzt 
1540 P2 = PEEK (43635): REM geladenen Parameterblockes 
1550 PB = Pl + 256 «= P2 
1569 P=1 
1578 HOME : VTAB (22) 
1588 PRINT "Grafik schon im Speicher? (J/N)";: GOSUB 2159 
1598 IF A$ = "N" GOTO 1799 
1600 IF A$ = "J" GOTO 18PP 
1618 GOTO 1579 
162 POKE - 16309,®: POKE - 1630#1,®: POKE - 16297,®: POKE 
- 16394,® 
1630 HOME : VTAB (22) 
1648 FOR I = ST TO ST + 39: POKE I,®: NEXT : REM Parameter 
löschen 
1650 GOSUB 2199: REM Grundeinstellung 
1660 PRINT "Grundeinstellung? (J/N)";: GOSUB 215® 
1678 IF A$ = "J" GOTO 2020 
1680 TEXT 
1699 GOSUB 2499: GOSUB 2480: GOSUB 2559: GOSUB 2629: GOSUB 
2690: GOSUB 2769: GOSUB 2839: GOSUB 2909: GOSUB 3389: 
GOTO 2929 
1700 HOME : VTAB (22) 
1718 PRINT "Diskette mit Grafikfiles einschieben": PRINT 
"und Taste drücken"; 
1720 GET A$ 
1730 TEXT : PRINT : PRINT D$'"CATALOG": PRINT 
1748 INPUT "Welche Grafik laden? ";A$ 
1750 IF A$ = "" THEN A$ = "BILD" 
1760 HGR 
1778 HOME : VTAB (22) 
SUPERDUMP.IMAGEWRITER 1780 PRINT D$"BLOAD":A$ 
1798 IF D = 1 THEN POKE CO,2: & : REM verschiebe von Seite 2 
1000 PF$ = "IMAGEWRITER": REM Parameter-File nach Aux RAM 
101® DG = 4: REM Grundeinstellung für Double-Hires 1800 POKE - 16300,®: POKE - 16301,®: POKE - 16297,9: POKE 
1020 NG = 1: REM Grundeinstellung für Nadel - 16304, 
1030 ST = 768: REM Start der ParameterÜbergabe 1810 P=1 
1040 KB = ST + ß®: REM Nummer des Kontrollblockes 1820 HOME : VTAB (22) 
1050 KA = ST + 92: REM Adresse des Kontrollblockes 1830 PRINT "Ist dies das richtige Bild? (J/N)";: GOSUB 215 
1ö60 IM = ST + ®4: REM 1-, 2- oder 4-fach Druck 1840 IF A$ = "J" GOTO 162® 
1078 xXO ST : REM exclusives Oder für jedes Byte 1850 IF A$ = "N" GOTO 1879 
1080 DI ST : REM Richtung 1860 GOTO 1829 
1090 FR ST : REM Rand 1878 HOME : VTAB (22) 
1108 AD = ST : REM Grafikadresse ($2000 für Seite 1) 1880 PRINT "Wollen Sie die andere Grafikseite": PRINT 
111® RF ST : REM Wiederholung fÜr gleiche Bilder "sehen? (J/N)";: GOSUB 2159 
1129 ST : REM Distanz zwischen gleichen Bildern 1890 IF A$ = "J" GOTO 1929 
1139 ST linker Bildrand (9..559) 1900 IF A$ = "N" GOTO 2000 
1149 ST rechter Bildrand (®..559) 191® GOTO 187® 
1159 ST oberer Bildrand (®..191) 1920 POKE - 16299,® 
116® ST unterer Bildrand (ß..191) 1930 POKE - 16392, 
1179 ST Dehnung in X-Richtung (1..31) 1949 P=2 
1189 ST Dehnung in Y-Richtung (1..31) 1950 GET A$ 
119 ST Double-Hires-Grafik für Apple //e 1960 PRINT 
1299 ST automatisches LF nach CR 1978 POKE - 16309, 
1219 ST Anzahl verschiedener Bilder 1980 POKE - 16301,® 
1220 ST Richtung der Drucknadeln 1990 GOTO 182® 
1239 sT Kommando fÜr Assemblerroutine 2000 POKE - 16393 ,® 
1249 ST Interface-Typ 2010 GOTO 1799 
1245 = CHR$(4) 2020 POKE - 16302,® 


+++ +++ ++ +++ tt tr tr Hr Hr Hr HH 





26 Peeker 6/85 


| nn nm nn 





YIYIN MAGAZIN FÜR APPLE-COMPUTER 


Ja, ich möchte peeker abonnieren. 

Liefern Sie mir peeker ab Ausgabe .................. (1985 erscheinen 11 Ausgaben — 
1 Doppelnummer) zum Jahresbezugspreis von DM 72,- (Inland) incl. MwSt. Die 
Lieferung erfolgt frei Haus. Porto, Verpackung und Zustellgebühren übernimmt 
der Verlag. Der Jahresbezugspreis für das Ausland beträgt DM 72,- incl. MwSt., 
zzgl. DM 16,80 Versandspesen. 





Für = Unterlagen 
2 Abonnement bestellt 








Ich wünsche jährliche Berechnung durch: 
[_] Verlagsrechnung [_] Abbuchung von meinem Bank- 
bzw. Postscheckkonto 








Tas er: ervice Bank / PschA 
Postfach 102869 


6900 H ide nn 


Bankleitzahl Kto.-Nr. 





Datum Unterschrift 


ZINN MAGAZIN FÜR APPLE-COMPUTER 


Bitte senden Sie mir gegen Rechnung folgende Bücher: 


Für Ihre Unterlagen: 
- Folgenc ide Bücher beste 












Datum Unterschrift 


aaaaad MAGAZIN FÜR APPLE-COMPUTER 





| ) Bitte senden Sie mir 
. ge gegen Rechnung folgende Apple-Programme: 
z oO U] Peeker-Sammeldiskette, einzeln [I Apple DOS 3.3, Begleitdiskette, DM 28,- 
. Disk# ____—_, Disk# OD) Apple ProDOS, Band 1, Begleitdiskette, 
. SL Disk# ____, Disk# DM 28,— 
. # Preis je Disk DM 28,- (einzeln) DO) Apple ProDOS, Band 2, Begleitdiskette, 
2 “ U] Peeker Sammeldiskette, OD) Apple Assembler, Begleitdiskette, DM 28,— 
oO im Fortsetzungsbezug OD) ProDOS-Editor 1.0, Programm, DM 98,— 
_ ab Disk # _—_—— OD) MMU 2.0, Programm, DM 98,— 
_ 2 (Mindestbezug 6 Disketten) D INPUT 2.0, Programm, DM 98,- 
° a 2 Preis je Disk DM 20,- OD) Softbreaker 1.0, Programm, DM 48,- 
a M _ [I DB-Meister, Programm, DM 290,— 
er | ..— OÖ D a ee a = 
| Softwareabtelung 9 = SUDETIER ISHPANIN; — 
_ Postfach 102869 
. D D Unt hrift 
M a t |. 1 . a atum nterschri 


. 


E Software-Karte 


Vertrauensgarantie: 


Ich habe davon Kenntnis genommen, daß ich die Bestellung 
| schriftlich durch Mitteilung an den Dr. Alfred Hüthig Verlag, 


PP Postfach 102869, 6900 Heidelberg 1 innerhalb von 


7 Tagen widerrufen kann. Zur Fristwahrung genügt die 
_ rechtzeitige Absendung des Widerrufs (Datum des 
Poststempels). 


| Datum 


_ Unterschrift 


Verlagshinweis: 
Das Abonnement verlängert sich zu den jeweils gültigen 
Bedingungen um ein Jahr, wenn es nicht 2 Monate vor 
Jahresende schriftlich N. wird. 


© Sache bitte vollständig ausfüllen 


A m Vorname, Name 


Firma 


Straße 


| Telefon mit Vorwahl 





Karte bitte vollständig ausfüllen 


Vorname, Name 


Straße 





Teleton mit Vorwahl 


POSTKARTE 


peeker 
Leserservice 


Postfach 102869 
6900 Heidelberg 1 


POSTKARTE 


peeker 
Versandbuchhandlung 


Postfach 10 28 69 


6900 Heidelberg 1 


POSTKARTE 


peeker 
Softwareabteilung 


Postfach 10 2869 


6900 Heidelberg 1 





INPUT 2.0 


Ein Bildschirm- 
Maskengenerator 


für DOS 3.3 und ProDOS 

von U. Stiehl 

1984, Diskette und Manual, DM 98,- 

ISBN 3-7785-1021-5 

„Input 2.0“ liegt wahlweise in der Bank 1 
oder Bank 2 der Language Card und wird 
durch einen kurzen Driver in den unteren 
48K aufgerufen. 

Für jedes Feld der Bildschirmmaske lassen 
sich u. a. definieren: Feldlänge (bis zu 255 
Zeichen) — Vtab — Htab — Datentyp (insge- 
samt 8 Typen) - Scrollflag (starre oder dyna- 
mische Maske) — Ctriflag — Füllflag — Lösch- 
flag — Bildschirmflag (40- oder 80-Z-Darstel- 
lung). Innerhalb eines Eingabefeldes besteht 
jeder denkbare Redigierkomfort (Insert, De- 
lete, Rubout, Restore usw.). 
Gerätevoraussetzung: Apple Ile oder Iic; fer- 
ner Apple II+ im 40-Zeichenmodus 


MMU 2.0 

Memory Managements 
Utilities 

für die Apple lle 64K-Karte 

DOS 3.3 (und ProDOS) 


von. Stiehl 


1984, Diskette und Manual, DM 98,— 
ISBN 3-7787-1023-1 


Insgesamt enthält die neue „MMU 2.0"- 
Diskette über 25 Programme, die neue 
Einsatzmöglichkeiten für die Extended 80 
Column Card (erweiterte 80-Z-Karte = 
64K-Karte für den Apple Ile) erschließen. 
Ein Teil der Programme laufen auch auf 
dem Apple II Plus, doch ist „MMU 2.0° 
primär für 64K-Karte-Besitzer gedacht. 


Gerätevoraussetzung: Apple Ile mit 64K- 
Karte oder lic 


Softbreaker 1.0 


Eine softwaremäßige Interrupt-Utility 
für die Apple lle 64K-Karte 


vonU. Stiehl 


1984, Diskette und Manual, DM 48- 
ISBN 3-7785-1022-3 


Softbreaker ist ein Assemblerprogramm, mit 
dessen Hilfe Programme, die sich von der 
64K-Karte (= Extended 80 Column Card für 
den Apple lle) starten lassen, unterbrochen, 
gespeichert, geladen und exakt an der Stelle 
der Unterbrechung fortgeführt werden kön- 
nen. Dadurch ist es auch möglich, Siche- 
rungskopien von sogenannten kopierge- 
schützten Programmen herzustellen. 

Mit Softbreaker unterbrochene Programme 
werden komplett, d. h. die ganzen 64K ein- 
schließlich Language Card, in nur ca. 11 Se- 
kunden auf einer formatierten Diskette gesi- 
chert. 

Gerätevoraussetzung: Apple Ile mit 64K- 
Karte 


Hüthig Software Service, 
Postfach 10 28 69, D-6900 Heidelberg 





Verkauf Software 


TEAC 55F 600,- 55B 550, * 
SSDD 10 St 42,- 96 tpi DS 78,- 
Lochverst. europ. Markenw. * Box 
Rglas. Schl. für 40-42,- für 80-— 
49,— * Monitore 18Mhz 12” entsp. 
gr. ab 298,-. VICO, 

Selchower Str. 31, 1000 Bin 44 


APPLE-Nachbau mit 16K, Z80, 
VIA-Karte, 2 Disk-Laufwerke, Mo- 
nitor und Intellig. Keyboard zu 


verk., Tel. 040/7013101 nach 
18 Uhr. 
Flache Siemens/Rafi Tas- 


tatur mit 64 Zusatz-Funktionsta- 
sten und HEX Block. F-Tasten ver- 
kettbar bis 1800 Zeichen. Stan- 
dartbelegung Basic + Wordstar. 
VHS 920. Eproms 2716 ä 8,50. 
Tel. 06251/69742. 


PrinterPlotter Adcomp X132SP 
mit V24 Schnittstelle. Neupreis 
5500 VHS 2400 DM. Eproms 2716 
a 8,50 DM, Tel. 06251/69742. 


*** Apple Il Supermodem xxx 
V21, V23 und Bell, 300-1200 
Baud komplett auf einer Karte, mit 
Software startfertig nur 398 DM. 
Rolf Kiupel, Tel. 04 31/5554 27. 


Verk. neuen EPROM-Burner NP 
373,- (Fa. Springmann) für nur 
320,—- VHB; Frank Fuhrmann, Tel. 
07231/21273 


Verkaufe 100 % Apple Komp. 
evtl. mit Zubehör, Preis VB 
Tel.: 06109/64899. 


Fernschreiberinterface am 
Gameport m. Programm DM 79,— 
P. Benner, Hubertusstr. 131, 4150 
Krefeld 


Z80B-Karte 6MHZ DM 600,-, 8 
Zoll Controler DM 500,-, 8 Laufw. 
DS/DD Sliml. 1,2MB DM 700,-, 
Tel. 02221/605088 ab 18.00 Uhr. 


Verkauf Hardware 


EEE N 5 
Landw. Spitzenprogramme 
Ab 90 DM Infomappe (3 DM) 
Fuer APPLE Il 
A. Wachendorf, 

2814 Engeln 30 
RER 


160-Track-Kopierprogramm 
für normale 16-Sekt.-Disks mit 
komf. Fehlerbehandlung Maschi- 
nenspra. B. Rüter, Rahden. Str. 
65, 4955 Hille 


— -— - STOCKMASTER II — — — 
Das Apple-Programm für echte 
Börsengewinne. 

TONGI, COMPUTER-PRAXIS 
Aspeltstr. 4, D-6500 Mainz 1 


Bagplus Basic Erweiterung 
für den Apple. 19! neue Befehle: 
Swap Instring, Inkey, Fillstr, Music 
Fillpage, Invpage für 49 DM Info 
anford.. Guido Schrörs Corne- 
liusstr. 29, 4154 Tönisvorst 1 


Astrologie-Progr. mit Text, 
Progn. + Partnervergl. Probeaus- 
dr. DM 10,- Geb. Dat. Zeit u. Ort 
Ang. CH. Marquard, Postf. 145, D- 
7753 Allensbach 


== BUNDW 


== Büroelektronik 
Keithstr. 26 - 1 Berlin 30 : ® 0 30-26 11126 


peel 





örse 


x APPLE Ile, APPLE lic x 
Maschinenschreiben, Gratisinfo, 
Demo-Diskette 10 DM, Dipl. Ing. 
M. Decker, Johannastr. 64, 4220 
Dinslaken, Tel.: 021 34/368 83 


APPLE-Programme nach Wunsch: 
Rüter, Rahdener Str. 65, 
4955 Hille 


Ankauf Software 


Suche Mailbox-Programm für 
APPLE Ile. Angebote an A. Krä- 
mer, Talstr. 37, 6057 Dietzenbach 


Suche Interessierte zur Gründung 
eines APPLE-Computerclubs 
im Raum 5010 Bergheim zur pro- 
fessionellen Programmerstellung. 
Tel.: 02271/43562. 


Erscheinungstermin für 
Ausgabe 7/85 
ist am 24.6.1985 


Ausbildung 


Mikroprozessoren 
Computertechnik 


Praxisnahe Fachausbildung durch staatl. 
dei Fernlehrgang. Hard/Software, 
aschinensprache, Programmierungstech- 
nik. Computer-Lernsystem wird mitgelie- 
fert. Information kostenlos. 
ISF-Lehrinstitut, 2800 Bremen 34/ Abt. 8-184 


KKKKKKKKKRKKKKRRR 








ER FIIPYNP 


MC 3470 (der Leseverstärker auf 
dem Analogboard): DM 10,-, A. 
Deckers, PF 967, 7 Stuttgart 1 


Disketten-Box 49,00 DM für 80 
5 1/4” Disketten, M. Ziemer, Bel- 
mer Str. 14, 4500 Osnabrück, 
0541/74333 0. 37859 


Suche „Schriftliches“ zu 
ROBO1IB8BB + APPLEWORKS, 
Tel. 02111/335842 


Suche Gebrauchsanleitung für 
Visiplot und Visitrend 
Tel.: 02233/75102 


KKKKFRKKRKRRKRRRRRRR 


Floppysubsystem 
für Apple Il 


2 x 3,5" TEAC FD-35F 
max. 2 x 1MB 
Autopatch-Controller 
inkl. Manual und SW 
ALU-Profil-Gehäuse m. Netzt. 
komplett anschlußfertig 
nur DM 2398,— 


RER 
Telekommunikation 


Anschlußkabel 
Dataphon S21d 
Terminalsoftware 
komplett anschlußfertig 
nur DM 398,— 


KRRRFKRFRKRRRKRRR 


TISCH & ZETTL GdbR 
Elektronicvertrieb 
Rosensir. 33, 8034 Germering 
Telefon 089/841 68 17 


KRRRKKRRKRKRKRRRKR 


KKKRKKHKKKKKKRR 
KRFKKFKKKRRR 


KRRKRRKFRKRRRKRKRRRRR 


-= BUNDW 


==  Büroelektronik GmbH 
Bachstr. 104 - 2 HH 76 : ® 0 40-220 1155 


Für weitere Informationen zu einem der in dieser Ausgabe vorgestellten 
Produkte stehen Ihnen die Produktkarten zur Verfügung 


Bitte verwenden Sie für Kleinanzeigen die vorgedruckten Antwortkarten in 


diesem Heft. 


Peeker 6/85 





29 



























2030 IF P = 2 THEN POKE - 16299,® 

2040 POKE -— 16297,® 

2050 POKE - 16394,® 

2060 POKE CO,®: REM jetzt drucken 

2070 POKE HI,D: REM eventuell Doppel-Hires 


2080 & : REM SUPERDUMP aufrufen 

2090 TEXT 

2100 HOME : VTAB (22) 

2118 PRINT "Nochmal? (J/N)";: GOSUB 215 
2120 IF A$ "J" GOTO 1579 


2130 IF A$ = "N" THEN HOME : END 

2140 GOTO 2199 

2150 GET A$: PRINT A$; 

2160 IF A$ > = "a" THEN A$ = CHR$ ( ASC (A$) - 32) 

2170 RETURN 

2180 REM 

2190 POKE KA,Pl 

2200 POKE KA + 1,P2 

2210 POKE AD + 1,P & 32 

2220 POKE RF,1 

2230 POKE RI,6 

2240 POKE RI + 1,39 

2250 IF D = 1 THEN POKE RI + 1,79 

2260 POKE BO,191 

2270 POKE XF,l 

2280 POKE YF,l 

22908 POKE HI,D 

2300 POKE DP,1 

2310 POKE NE,NG 

2320 IF D= 1 THEN C$ = STR$ (DG): 

2330 RETURN 

2349 REM 

2350 PRINT "Welches Kommando: "; 

2360 GET C$: IF (C$ = " ") OR (C$ = CHR$ (13)) THEN C$ = 
"m 

2378 IF VAL (C$) = ® THEN c$ = "1" 

2380 RETURN 

2390 REM 

2400 HOME 






























































GOSUB 3280: GOSUB 351 


2418 PRINT "<1> 1-fach Druck": PRINT 
2420 PRINT "<2> 2-fach Druck": PRINT 
2438 PRINT "<3> 4-fach Druck": PRINT 


2440 GOSUB 235% 

2450 POKE IM, VAL (C$) - 1 

2460 RETURN 

2470 REM 

2480 HOME 

2498 PRINT "<1> Positiv": PRINT 

2500 PRINT "<2> Negativ": PRINT 

2519 GOSUB 2359 

2520 IF C$ = "2" THEN POKE X0,255 

25390 RETURN 

2540 REM 

2559 HOME 

2560 PRINT "<1> Horizontal": PRINT 

2578 PRINT "<2> Vertikal": PRINT 

2580 GOSUB 235% 

2598 POKE DI, VAL (C$) - 1 

2600 RETURN 

2610 REM 

2628 HOME 

2638 PRINT '"<1l> Kein Rahmen": PRINT 

264® PRINT "<2> Rahmen": PRINT 

2650 GOSUB 235% 

2660 POKE FR, VAL (C$) - 1 

2670 RETURN 

2680 REM 

2699 HOME 

27008 PRINT "<1l> Seite 1": PRINT 

2718 PRINT "<2> Seite 2": PRINT 

2728 GOSUB 2359 

2730 POKE AD + 1, VAL (C$) * 32 

2749 RETURN 

2750 REM 

276® HOME 

2778 PRINT "<1> Automatisches LF nach CR": PRINT 
2780 PRINT "<2> Kein automatisches LF nach CR": PRINT 
2798 GOSUB 235% 

2800 POKE AL, VAL (C$) - 1 

281® RETURN 

2820 REM 

28390 HOME 

2840 PRINT "<1l> Unterste Drucknadel Bit 9": PRINT 
2850 PRINT "<2> Unterste Drucknadel Bit 7": PRINT 
2860 GOSUB 2359 

2870 POKE NE, VAL (C$) - 1 

2880 RETURN 
REM 


30 





















HOME 

2918 INPUT "Wiederholungsfaktor : ";I 

2920 I = ABS (I): IF I > 255 THEN I 

2938 IF I=® THENI=1 

2940 POKE RF,I 

2959 INPUT "Wiederholungsdistanz: "; 

2960 I = ABS (I): IF I > 255 THEN I 

2970 POKE RD,I 

2988 INPUT "Linker Rand : #37 

2998 I = ABS (I): IF I > 559 THEN I 

3000 POKE LE + 1, INT (I / 7) 

3018 POKE LE,I - INT (I/7) «7 

302 INPUT "Rechter Rand s mal 

3030 I = ABS (I): IF I > 559 THEN I 

3040 POKE RI + 1, INT (I / 7) 

3050 POKE RI, I- INT(I/7) «7 

3069 INPUT "Oberer Rand 0% 

3078 I = ABS (I): IF I > 191 THEN I 

3080 POKE TP,I 

309 INPUT "Unterer Rand ; WST 

3100 I = ABS (I): IF I > 191 THEN I = 191 

311® POKE BO,I 

3128 INPUT "X-Faktor ; USE 

3130 I = ABS (I): IF I > 31 THEN I =1 

3148 IF I=G THENI=|1 

315® POKE XF,I 

3160 INPUT "Y-Faktor a 

3170 I = ABS (I): IF I > 31 THENI=1 

3188 IF I=® THENI=| 

3198 POKE YF,I 

3200 INPUT "Anzahl der Bilder 2 m 

3210 I = ABS (I): IFI>8 THEN I =]1 

3220 IF I= 9 THENI=|1 

3230 POKE DP,I 

3248 INPUT "Kontrollblocknummer : ";I 

3250 I = ABS (I): IF I > 255 THEN I = 1 

3260 POKE KB,I 

3270 REM 

3280 IF PEEK (DI) = ® THEN BT = PEEK (XF) * ( PEEK (RI) + 
PEEK (RI + 1) *& 7 - PEEK (LE) - PEEK (LE + 1) «7 +]) 

3298 IF PEEK (DI) = 1 THEN BT = PEEK (YF) * ( PEEK (BO) + 
PEEK (BO + 1) *& 7 - PEEK (TP) - PEEK (TP +1) «7 +]) 

3300 BT = (BT + PEEK (RD)) * PEEK (RF) * PEEK (DP) 

331® BH INT (BT / 256) 

3328 BL = BT - INT (BT / 256) * 256 

3330 BT$ = STR$ (BT) 

3340 L = LEN (BT$) 

IF L< 4 THEN FOR I = L TO 3:BT$ = "®" + BT$: NEXT 


N 
m 


IH 
> 


Il 
a 


2719 



































Il 
> 


PRINT "Drucker: ";PF$: PRINT 
3400 PRINT "<1> 576 Punkte/Zeile" 
3410 PRINT "<2> 649 Punkte/Zeile" 
3420 PRINT "<3> 768 Punkte/Zeile" 
3430 PRINT "<4> 1152 Punkte/Zeile" 
3440 PRINT '"<5> 1288 Punkte/Zeile" 
3450 PRINT "<6> 856 Punkte/Zeile" 
3460 PRINT "<7> 968 Punkte/Zeile" 
3470 PRINT "<8> 1988 Punkte/Zeile" 





























2359 
3500 REM *** hier Grafiksteuerzeichen POKEn xx** 
351® I = PB + PEEK (KB) * 64 + 16: REM Adresse der 
Grafiksteuerzeichen 
3520 ON VAL (C$) GOTO 
3539 ,3549 ,3559 , 3569, 3579, 3589, 3599 , 360® 


3539 C$ = "n": GOTO 361 
3549 C$ = "N": GOTO 3619 
3559 C$ = "E": GOTO 3619 
3560 C$ = "p'": GOTO 3619 
3578 C$ = "P": GOTO 3619 
3589 C$ = "e": GOTO 3619 
35998 C$ = "q": GOTO 3619 
3600 c$ = gm 


361® POKE I + 2, ASC (C$) 
3620 FOR J = 5 TO 8: POKE I + J, ASC ( MID$ (BT$,J - 4,1)): 
NEXT : RETURN 





SUPERDUMP.EPSON 


Die folgenden Zeilen müssen im Listing SUPERDUMP. IMAGEWRITER 
geändert werden. 







1000 PF$ = "EPSON": REM Parameter-File 
181® DG = 2: REM Grundeinstellung für Double-Hires 
1028 NG = ®: REM Grundeinstellung für Nadel 





Peeker 6/85 


——— 





3400 PRINT '"<1> 489 Punkte/Zeile" 

3410 PRINT "<2> 968 Punkte/Zeile" 

3420 PRINT "<3> 96® Punkte/Zeile" 

3430 PRINT '"<4> 1928 Punkte/Zeile" 

3440 PRINT "<5> 649 Punkte/Zeile" 

3450 PRINT "<6> 576 Punkte/Zeile" 

3460 PRINT "<7> 728 Pinkte/Zeile" 

3478 PRINT 

3480 GOSUB 235% 

3490 REM *** hier Grafis«steuerzeichen POKEn #*x*%* 

3500 I = PB + PEEK (KB) * 64 + 16: REM Adresse der 
Grafiksteuerzeichen 


351® ON 
3529 
3539 
3549 
3559 


VAL (C$) GOTO 3529,3539,3549,3559,3569,3579,3589 
= "K": GOTO 3599 
= "L": GOTO 3599 
= "Y": GOTO 3599 
= "Z": GOTO 3599 


356 C = 4: GOTO 36ßP 


3578 C = 


3580 C 


5: GOTO 369 


= 6: GOTO 369 


3598 POKE I,4: POKE I + 2, ASC (C$): POKE I + 3,BL: POKE 
I + 4,BH: RETURN 

S6ß® POKE I,5: POKE I + 2, ASC ("x"): POKE I + 3,C: POKE 
I + 4,BL: POKE I + 5,BH: RETURN 


Die Zeilen 361® und 3629 entfallen. 


Tabelle 1: Übergabeparameter 


$o300 - 


50302 
$0304 


Peeker 6/85 


Kontrollblock-Nummer: Nummer des aktuellen Kontroll- 
blocks. Erklärung im Text. 

(siehe Tabelle 2) 

Adresse des Kontrollblockes: Startadresse des 
Kontrollblocks #® im üblichen Low/high-Format. 
Druckschwärze: (Wertebereich 1..3) 

1 = l-fach Druck 

2 2-fach Druck 

3 = 4-fach Druck 

XOR-Byte: (Wertebereich ®, 255) 

$00 = schwarz auf weiß 

$FF = weiß auf schwarz 

Richtung: (Werteberich , 1) 

ßÖ = horizontal 


l = vertikal 


Rahmen: (Wertebereich ß, 1) 
® = kein Rahmen um das Bild zeichen 
1 = Rahmen zeichnen (z.B. zum Ausschneiden) 
Bildadresse: (Wertebereich ®..2116-1) 
im Low/high-Format 
$2008 für Seite 1 
$4008 für Seite 2 
oder eine beliebige andere Adresse im RAM-Bereich 
Wiederholungsfaktor: (Wertebereich ®..255) 
Anzahl der Wiederholungen des gleichen Bildes 
nebeneinander 
Wiederholungs-Abstand: (Wertebereich ®..255) 
Anzahl der Bits, die zwischen zwei oder mehr 
aufeinanderfolgenden Bilder frei bleiben soll. 
linker Bildrand: (Wertebereich ®..559) 
Folgendes Format muß eingehalten werden: 
$0312 = Linker Rand mod 7 
$0313 = Linker Rand div 7 
Bsp: Linker Rand = 1® daraus folgt 
$0312 = 3, $8313 = 1 (weil 19 = 1x 7+3) 
rechter Bildrand: siehe linker Bildrand 
oberer Bildrand: (Wertebereich ®..191) 
unterer Bildrand: (Wertebereich ®@..191) 
Xfaktor: (Wertebereich ®..3l) 
Dehnung des Bildes in X-Richtung 
Yfaktor: siehe Xfaktor 
Hires 569: (Wertebereich ®, 1) 
Ö = Drucken der normalen 28ß*192-Grafik 
1 = Drucken der Apple-IIe- oder Apple-IlIc- 
560+192-Grafik 
Auto-LF: (Wertebereich ®, 1) 
ßÖ = sende LF nach CR 
1 = sende kein LF nach CR 
Anzahl der verschiedenen Teilbilder: 
(Wertebereich 1..8) 
Bsp: 1. Teilbild (linke Hälfte) Seite 1, 

2. Teilbild (rechte Hälfte) Seite 2, 
dann setzt man: 
$30C:00 28 (Adresse des 1. Teilbild) 
$322:92 (2 Teilbilder) 
Das heißt: Das 2. Teilbild wird bei $4ßß® beginnen, 
denn es werden pro Teilbild $2ß@® zur Anfangs- 
adresse aufaddiert. 





arafık 44 


$0324 - Drucknadel-Richtung: (Wertebereich ß, 1) 
Für Epson Drucker = ß, 


für 
für 


Imagewriter = 1, 
alle anderen Drucker selbst ausprobieren 


$0326 - Kommando-Byte 





0 = 
I = 


2 = 


Drucke Bild 
Verschiebe von Auxiliary-RAM $2@0® nach 
Main-RAM $4909 
Verschiebe von Main-RAM $4ß@9 nach 
Auxiliary-RAM $2900 
Konvertiere ein Double-Hires-Bild in 2 normale 
Hires-Bilder mit 
linker Hälfte in Seite 1 ($2@9®) und 
rechter Hälfte in Seite 2 ($499®) 
Konvertiere 2 normale Hires-Bilder von 
Seite l (linke Hälfte) und 
Seite 2 (rechte Hälfte) 
in ein Double-Hires-Bild. 


nm nn nn nn mn nenn nn nn nn nu nme 


PEEkER 


4.) a) a) irRES-Grafik 


nn 





Die obige Grafik wurde von Martin Schmidt erstellt 
und mit Superdump ausgedruckt. 


Tabelle 2: Print-File 


Epson 
Block 
Pinit: 
Pline: 
PIE: 


Pexit: 


Block 
Pinit: 
Pline: 
PAFL: 


Pexit: 


#9: 


#]: 


IHH9- 
9908- 
9919- 
9018- 
9929- 
9028- 
9939- 
9038- 


9949- 
9948- 
8959- 
9958- 
9060- 
9068- 
9978- 
9078- 


Imagewriter 


Block #ß: 


Pini®: 


Pline: 


Pifl: 


Pexit: 


9p99- 
9p98- 
991B- 
9p18- 
9929- 
9028- 
9p39- 
9938- 


für Horizontaldruck 


03 1B 33 17 BO BB 00 BD Länge 3: ESC, 

do DO DD DO DO DO DD DB "3", CHR$(23) 

04 1B AB 18 Q1 PB BB PB Länge 4: ESC, 

DD BO DO DO DO DO DO MO "K", CHR$(24), CHR$(1) 
03 1B AA Bl BO DD BO BB Länge 3: ESC, 

0 DD DO DO DO DO DO DD "J", CHR$(1) 

02 1B 32 BO BDO DO BO BO Länge 2: ESC, 

20 BD BD BO DO DD DD Do "2" 


für Vertikaldruck 


03 1B 33 14 00 00 00 00 Länge 3: ESC., 

DD Do DD DO DO DO 00 MO "3", CHR$(29) 

04 1B AB CO 00 00 00 OB Länge 4: ESC, 

DD DD DO DD DO DO DO 00 "K", CHR$(19?). CHR$(O) 
93 1B 4A Bl BD BO 00 MO Länge 5: ESC. 

DD PD DD DO DO DD DD DO "3", CHRS(1) 

2 1B 32 D0 00 00 00 MO Länge 2: ESC, 

BD DD DD DO DB DD DD DB "2" 


für Horizontaldruck 


ß6 1B 54 31 36 1B 3E PB Länge 6: ESC, 

00 DO DD DO DO DO DO DB "TE", ESC, ">" 
08 1B 6E 1B 47 30 32 38 Länge 8: ESC, 

30 DD MD DD DO DO DO DB "n!", ESC, "GP28g" 
0 DD DO DO OO DO DD MB Länge P 

DD DD OD DO DO DO DO De 

04 1B 3C 1B 41 BP DO BP Länge 4: ESC, 

DD DD DD DO DO DO DO DD "<", ESC, "A" 


31 





#1: für Vertikaldruck Grundeinstellung? "y" 
l-fach Druck an 
: 9040- 96 31 Länge 6: ESC, Positiv DM 
9948- "") "714", ESC, ">" Horizontal "u 
: 9959- 1B Länge 8: ESC, Kein Rahmen ny" 
9058- 011) "n", ESC, "G9192" Seite 1 "n 
9969- 9") Länge ® Automatisches LF nach CR "]" für Epson und Imagwriter 
9068- ") Unterste Drucknadel Bit ® "]" für Epson 
: 9070- 1B Länge 4, ESC, "2" für Imagewriter 
9078- DD 90 "eu, ESC, "A" Wiederholungsfaktor u iu 
Wiederholungsdistanz gu 
Linker Rand u 
Tabelle 3 Rechter Rand "279" 
Oberer Rand gu 
Unterer Rand "191" 
Frage Antwort X-Faktor Be 
Y-Faktor a 
Anzahl der Bilder ua" 
zu Bild 1: Kontrollblock Nummer "og" 
Grafikmodi "2" für Epson 
Apple IIe Double-Hires-Grafik? "N" "a4" für Imagewriter 
Bild speichern? N" 
Grafik schon im Speicher? my Anmerkung zu Bild 2: Dies sind zwei normale 289*192-Punkte- 
Welche Grafik laden? <Name des Grafikfiles angeben> Bilder, die nebeneinander im Speicher liegen, 
Ist dies das richtige Bild? ng aber zusammen gedruckt werden. Dies kann beim 
Grundeinstellung? ng Drucken für Graf-quattro-Bilder benutzt werden. 


zu Bild 3: 


zu Bild 2: 4‘ 
Apple IIe Double-Hires-Grafik? '"J" = 


Anfang wie Bild 1 sonst wie Bild 1 


ccp datentechnik INTUS — Lernprogramme 


in deutscher Sprache für Apple Ile und Ilc. 


® Rechtschreib-Trainer. 4 Übungsarten, 16 Bereiche, 
über 4000 Wörter und Kurzsätze. Sehr wirkungsvoll, 
gute Erfolge bei Legasthenie DM 125,— 


640 KByte-Drives für den Apple //c!! @ Wortschatztrainer Englisch und Französisch, e DM 98,- 
@ 5'/4- od. 3'2-Zoll-Format (Teac FD55/35-F) @ Maschineschreiben wie der Blitz. 20 Lektionen. DM 188,— 


@ FD55-F umschaltbar auf 35/40 Track 
& Anschluß an die suleme Laufwerkbuchse @ Basic-Lernprogramm. 14 Lektionen. DM 295,— 


® Kein Öffnen des Gerätes erforderlich ® Lesen wie der Blitz.Wirkungsvolles Lesetrainiing. DM 98,- 

@ Einfache Anpassung für DOS 3.3, UCSD-Pascal und PRODOS © Kinderschule. Beliebte Vorschulprogramme. DM 69.- 
durch menügeführten Patch iR ’ 

© Anpassung von CP/M in Verbindung mit einer Z 80-Zusatzplatine @ Demo-Disk. mit Kostproben aus 9 Programmen. DM 10,- 
in Vorbereitung Katalog gratis. 

® anschlußfertig im Gehäuse DM 990,— 


Festplatten für Pe r (ve) INTUS SOFTWARE 


@ 5'/4 Zoll-F t (Slimli 
= a Fat pr EEE in DOS 3.3, UCSD-Pascal, Kaiserstraße 21 : 7890 Waldshut-Tiengen - Telefon 07751-7920 


PRODOS und CP/M 2.2 / 3.0 
@ Gemischtbetr. mit 35/40/80/160 Track-Drives 
@ Copy- und Install-Programme im Lieferumfang 
@ Umfangreiches Manual 
® z.B. 12 MB form. incl. Netzteil u. Contr., u 


Macintosh 


I” 512K 


@ 5'/- od. 3'/-Zoll-Format (Teac FD55/35-F) 
Speichererweiterung 








@ FD55-F umschaltbar auf 40 Track (Apple kompatigel) 

@ Installationssoftware für DOS 3.3, UCSD-Pascal, CP/M 2.2, 
CP/M 2.23 (60K), PRODOS, AP22, ALS CP/M+ 

® Umfangreiches Handbuch 

® Anschlußfertige Auslieferung incl. Contr. und 2 Drives 

@ Diskstation 55ll (2 Teac FD55-F, 1.22MB) . . . DM 1649,— 

@ Diskstation 3511 (2 Teac FD35-F, 1.2MB) . . . DM 1540,— 


Alles für Ihren Apple 


Info bei: 


ccp-datentechnik 


Herderstraße 12 — 2000 Hamburg 76 
Telefon 040/225676 









Professionelle Umrüstung in 24 Std. 
Zum Superpreis von nur DM 1680,-- 
Schappach Computer 68 Mannheim 
Ss6,36 Telefon 062 1-120662 





32 Peeker 6/85 








Betriebssystem CP/M 
Vom Monitorprogramm zum 
Mehrbenutzersystem. 

Von Jürgen Plate. 

1984, 351 Seiten, 30 Abb., 

3 Tab., geb., DM 56,- 


Franzis 


Das Buch beschreibt ausführ- 
lich die Kommandos, ihre 
genaue Syntax und die einzel- 
nen Teilprogramme von CP/M 
wie BIOS (systemspezifischer 
Teil), ED (Editor), ASM (Asem- 
bler, inklusive einer Beschrei- 
bung des 8080-Befehlssat- 
zes), SYSGEN und STAT. 

Der Beschreibung von CP/M 
ist das Listing eines komfor- 
tablen Monitorprogramms für 
Z-80-Computer vorangestellt, 
das eine elementare Program- 
mierung auf Maschinenebene 
erlaubt, solange man CP/M 
noch nicht geladen hat. Das 
kann z. B. zur Fehlersuche 
sehr nützlich sein. Am Schluß 
des Buches findet sich auch 
eine Kurzbeschreibung der 
Multitasking-/Multiuser- 
Betriebssysteme. 


Das Buch zum Apple Il 
von Erich Esders 

1985, 210 S., 119 Abb., geb, 
DM 54, — 


Wenn hier vom Apple Il 
gesprochen wird, so gilt das 
auch für den Ilplus, den lleuro- 
plus und die lle-Versionen 
sowie für den ganzen „Apple- 
Nachbau“. Das Buch ist ein 
Wegweiser durch diesen 
Rechner, um mit ihm schneller 
und effektiver zu arbeiten. Es 
geht hier weniger um das ele- 
mentare Programmieren des 


Peeker 6/85 












Rechners, sondern um 
Assemblerprogramme, die 
extensiv Monitor-ROM- 
Subroutinen benutzen. Diese 
hat der Autor nach Sach- 
gebieten geordnet, z.B. 
Mathematik, Graphik, String- 
Bearbeitung + Disassembler- 
Listings und diese wiederum 
mit Erklärungen und Applika- 
tionen komplettiert. Eine aus- 
reichende Dokumentation ist 
dabei immer gewährleistet. Sie 
geht schrittweise vor, von der 
Aufgabenstellung über die 
Programmentwicklung bis zum 
lauffähigen Maschinenpro- 
gramm. Die angebotenen Bei- 
spiele sind ausbaufähig und 
lassen der eigenen Kreativität 
reichlichen Spielraum. Viele 
neuartige Tips und Tricks wird 
auch der beschlagene Apple- 
Benutzer begrüßen. 

Aus dem Inhalt: 

Der Mikroprozessor des 
APPLE Il. Der APPLE Il und 
seine Speicheraufteilung. 
APPLESOFT und seine 
Arbeitsspeicher-Bereiche. Der 
MICROSOFT-Basic-Inter- 
preter: Die Zeichen-Lese- 
Routine. Interpretierer und 
Lokalisierer. Handler-Routi- 
nen. BASIC/Maschinen- 
sprache-Interfaces. 
DISAS-Generator. Unterpro- 
gramme im APPLESOFT- 
Basic-Interpreter: Softschalter 
und -Flags. Ausdrucks-Inter- 
pretierer. Low-Resolution- 
Graphik. Fehler-Behandlung. 
Applikationen: Arithmetik- 
Demonstration „FP-CALC“. 
Hex-Dumps der Applikationen. 
BASIC-Monitor BASMON/D: 
Vorstellung der neuen Kom- 
mandos. Das Programm 
„BASMON/D“. Implementie- 
rung und Laufbeispiele. 
BASIC-Interpreter-Vergleich 
APPLE II - Commodore 64: 
Arithmetik-Demonstration 
„FP-CALC/64“. Listen: Die 
Token des APPLESOFT-Basic. 


Apple II ROM Listing 
von Matthias Buck 
1984, 116 S., Kart., DM 59,- 


dernic Il 


1,1, He,lic 





Listing 


für Applesoft -BASIC- | 
Interpreter 


von Matthias Buc Buck 


ee ernennen an 





MIKROCOMPUTER 


Das deutsche Apple-II-ROM- 
Listing ist da! 

Einleitung zum prinzipiellen 
Ablauf des Applesoftinter- 
preters: 


-@ Aufbau und Verarbeitung 


der/des Programmtextes - 
Variablentabelle - String- 
space - Fließkommaformate 
- Basicstacks (GDSUB, 
FOR-NEXT, ...) 

® Beschreibung der wichtig- 
sten Unterprogramme, z. B. 
Variablensuche, Garbage 
collection, Ausdrucksaus- 
wertung, CHRGET, ... 

@ Vollständig disassemblierte 
und sehr ausführlich 
deutsch kommentierte Auf- 
listung des Applesoft- 
BASIC-Interpreters 

® Übersichtliche Auflistung 
aller vom Interpreter benutz- 
ten RAM-Zeilen mit allen 
Verwendungszwecken 

® Über 150 ausführlich doku- 
mentierte Unterprogramme: 
- Funktion 
- Ein/Ausgabeparameter 

Auch für Apple-lle und c und 

Kompatible! 


Apple Il Pascal 
Eine praktische Anleitung 
von Arthur Luehrmann und 


Herbert Peckham 
1982, 544 S., kart., DM 59,- 


APPLE | 
PASCAL , 





ARTHUR LUEHRMANN - HERBERT PECKHAM 


Dieses Buch ist unentbehrlich 
für alle, die die Programmier- 
sprache PASCAL lernen 
wollen und Zugang zu einem 
Apple Computer haben. 

Sie benötigen keinerlei Vor- 
kenntnisse, sondern lernen an 
Hand von Beispielen und 
Übungen, wie man selbst 
PASCAL-Programme entwik- 
kelt und sie austestet und 
werden allmählich von Kapitel 
zu Kapitel vertrauter im 
Umgang mit dem Apple 
Computer. 


Start mit Apple-Logo 
für II, Ile und Ilc 

Das kleine Logo-Einmaleins: 
Grafik « Text + Musik 

VonD. Senftleben 

1985, 222 Seiten, DM 35,- 


Viele Mikrocomputer-Her- 
steller bieten für ihre Geräte 
neben BASIC und anderen 
Programmiersprachen 
zunehmend auch Logo an. 
Durch ihre Benutzerfreund- 
lichkeit hat diese Sprache 
bereits viele Freunde im 
Ausbildungs- und Freizeitbe- 







Dietrich Senitleben 

Start mit, 
Apple-Logs für 
Apple Il, Ile und Ilc 


WISSEN 
ss 


reich gefunden. Dabei ist 
Logo eine mächtige 
Sprache, die auch dem 
anspruchsvollen Anwender 
kaum Wünsche offenläßt. 
Mittels Schildkrötengrafik 
wird das kleine Logo-Einmal- 
eins in 12 Lektionen entwik- 
kelt. Große Bildschirmfotos 
begleiten den Leser durch 
die Lektionen. Das Buch ver- 
langt aktive Mitarbeit. Es hat 
seinen Platz neben dem 
Computer und gibt Hilfen 
und Anregungen für eigenes 
Forschen. Dank des bau- 
steinorientierten Konzepts 
kann jeder seine eigenen 
Teilbausteine erzeugen und 
sie zu neuen Blöcken 
zusammenfügen. Neben 
dem Einmaleins werden 
neue Einsatzbereiche für 
den Einsteiger erschlossen. 
Musik und Sound fehlen 
nicht. 

In diesem Buch werden die 
beiden offiziellen Logo-Pro- 
dukte der Firma Apple für die 
Rechnerfamilie Apple Il, Ile 
und IIc behandelt und deren 
Unterschiede verdeutlicht. 
Weiterhin sind sämtliche 
Apple-Logo-Vokabeln über- 
sichtlich zusammengestellt. 
Dieses Buch ist ideal zum 
problemlosen und vergnüg- 
lichen Start in die Apple- 
Logo-Welt. 


Apple Il 
Anwenderhandbuch 


von Lon Poole 
1982, 450 S., zahlr. Abb., 
kart., DM 56,- 





Auch für diesen Computer 
haben wir den richtigen Leit- 
faden. Er erspart Ihnen zeit- 
raubendes und nutzloses 
Suchen nach der wirklich 
verwendbaren Dokumenta- 
tion für Ihren Computer. Das 
Anwenderhandbuch 
beschreibt zum einen den 
beliebten Apple II-Computer 
als solchen und gibt zum 
anderen ausführlich Aus- 
kunft über die normalen 
Peripheriebausteine und 
Zubehör einschließlich Disk- 
Laufwerken und Drucker. Mit 
Hilfe dieses Buches werden 
Sie Ihren Apple Il erfolgreich 
einsetzen, denn der Informa- 
tionsgehalt geht weit über 
das hinaus, was hersteller- 
seitig an Literatur angeboten 
wird. Sie lernen BASIC auf 
zwei verschiedene Arten zu 
verwenden. Wie man den 
Gebrauch von Klang, Farbe 
und Grafik zum Optimum 
führt. Sie erhalten Tips für 
fortgeschrittene Programm- 
erstellung. Sie erfahren die 
Verwendung des Maschi- 
nensprachen-Monitors 
u.v.m. Mit dem Apple Il- 
Anwenderhandbuch werden 
Ihnen alle Möglichkeiten 
eröffnet, die in diesem Com- 
puter stecken. 


Apple ll Pascal 
Sprache 


1985, 197 S., DM 39,- 





Apple Il Pascal 
Betriebssystem 


1985, 256 S., DM 49,- 





33 


Ralf Menssen 





Hardcopy auf 
Olympia ESW 100 RO 





Ein Typenraddrucker wird grafikfähig 


Das Programm OLYMPIA gibt eine Hard- 
copy vom hochauflösenden Grafikbild- 
schirm 1 oder 2 auf dem Typenraddrucker 
Olympia ESW 100 RO aus. Es ist durch 
leichte Modifikationen im Prinzip für alle 
Typenraddrucker verwendbar, die ihre ho- 
rizontale und vertikale Schrittweite auf 
1/60 bzw. 1/96 Zoll einstellen können. Es 
lauft auf dem Apple Il mit 48K und allen 
kompatiblen Rechnern. Die hier vorge- 
stellte Version beginnt bei Speicherplatz 
$8000 und sollte durch BSAVE OLYMPIA, 
A$8000, L$IES auf Diskette gespeichert 
werden; es kann jedoch auch an anderer 
Stelle neu assembliert werden. 


Bedienung des Programms 


Die auszudruckende Grafik muß sich im 
Speicher befinden. Dann lädt man die 
Druckroutine mit BLOAD OLYMPIA und 
startet sie mit CALL 32768. Auf dem Bild- 
schirm erscheint jetzt die Grafikseite 1 und 
darunter die Frage, welche Seite ausge- 
druckt werden soll. Antworten Sie mit „1“ 
oder „2“. 

Als nächstes müssen Sie entscheiden, ob 
das Bild positiv oder negativ erscheinen 
soll, d.h. ob ein weißer Punkt auf dem 
Bildschirm auf dem Papier schwarz oder 
weiß werden soll. Geben Sie „P“ oder 
„N“ ein. 

Als letztes müssen Sie noch die vertikale 
und die horizontale Schrittweite in 1/60 
bzw. 1/96 Zoll angeben. Als günstige Ein- 
gabe hat sich „O2“ für die horizontale und 
„03“ für die vertikale Schrittweite heraus- 
gestellt. Sie erhalten dann eine Hardcopy, 
die ein quer eingespanntes DIN-A4-Blatt 
gut ausfüllt. Außerdem. decken sich die 
Punkte dann sehr gut. 

Haben Sie diese Eingaben gemacht, brau- 
chen sie etwas Geduld, denn der Typen- 
raddrucker muß jetzt ca. 50000 Positionen 
ansteuern und wahlweise einen Punkt 
oder ein Leerzeichen drucken. Aber das 
Warten lohnt sich, denn die Qualität der 


34 


Hardcopy übertrifft Matrixdrucker der glei- 
chen Preisklasse Klar. 


Zur Schonung des Typenrades stellen Sie 
bitte den geringsten Anschlag am Drucker 
ein. Außerdem sollte man ein Endlosfarb- 
band verwenden, da ein Karbonband zu 
schnell verbraucht ist. 


Programmaufbau 


Es werden die zwei Unterprogramme 
COUT (Ausgabe eines Zeichens bei 
$FDED) und RDKEY (Lesen eines Zei- 
chens bei $FDOC) des Apple-Betriebssy- 
stems benutzt. 

Die druckerspezifische Befehle lauten wie 
folgt: 


ESC P — Auto-Linefeed ein-/ausschalten 
($1B $50), 
ESC $FF nn — vertikale Schrittweite defi- 
nieren ($1B $0C nn), 


ESC CR nn — horizontale Schrittweite de- 
finieren ($1B $0D nn), 


SP - Leerschritt ($20), 
CR — Wagenrücklauf ($0D), 
„. — Punkt ($2E). 


Das Programm ist für eine Druckerschnitt- 
stelle in Slot 1 ausgelegt. Festgelegt ist 
dies durch die Labels PORTDATA und 
HANDSHK. Für Slot 2 müßte PORTDATA 
zu $COAO und HANDSHK zu $C2C1 ge- 
ändert werden. Für manche Interfaces ist 
ein anderes Übergabeprotokoll erforder- 
lich, das Sie dem zugehörigen Handbuch 
entnehmen können. 

Für künstlerische Effekte bietet sich die 
Zeile 179 an. Dort wird festgelegt, daß der 
Drucker einen Punkt (= $2E) druckt. Als 
Alternative wären z.B. der Schrägstrich 
oder das Ausrufezeichen denkbar. Ändert 
man dann noch die Schrittweiten, ließe 
sich die Grafik „zoomen“. Weitere Mög- 
lichkeiten sind Ihrer Phantasie überlassen. 





Peeker 6/85 








OLYMPIA 
s00B: A9 BP 
8002: 8D 59 
8005: 8D 53 
8008: 8D 54 
8ß0B: 8D 57 
SODE: A2 99 
801®: BD 8E 
8013: 20 ED 
8016: E8 
8017: E® 2E 
8019: D® F5 
801B: 29 dc 
SPlE: C9Y Bl 
8029: FO 09 
8022: C9 B2 
8024: D® F5 
8026: AB 4 
8028: AC 2D 
802B: AB 29 
802D: A2 99 
802F: 86 1A 
8031: 84 1B 
8033: A2 2E 
8035: BD 8E 
8038: 20 ED 
803B: E8 
803C: E® AA 
8Sß3E: D® F5 
8049: AY BO 
8042: 85 06 
8044: 20 BC 
8047: C9Y DB 
8049: FO 08 
804B: C9 CE 
804D: DO F5 
8DAF: AY Pl 
8051: 85 6 
8053: 20 45 
8056: A9Y DE 
8058: 20 53 
805B: 85 EF 
805D: 20 45 
8060: A9Y DI 
8062: 20 53 
8065: 85 EE 
8067: A9 BB 
8069: 8D 52 
806C: AY PD 
8D6BE: 20 3C 
8071: AS 1B 
Peeker 6/85 


co 
cp 
co 
cp 


8l 
FD 


FD 


80 


8l 
FD 


FD 


8l 
8l 
8l 


8l 


cp 


8l 


vo oıoouAuvDdH- 


ba u 
SOotvenı9 1 A wu DH a 


DVD 
Dr 


OO OO OIIAAIAIAAAAADODO DOWN UNUUNN N UND DD DD 
END HSOO IV PWND Hr SO ID PUWUDV HH SO IODVOTMTPPUD HH SO AIODO I PUDH-SOOIODOTVTPNDHSODOTIDU SB 


ek 
** HARDCOPY APPLE - ESW190-RO “* 
*%* Von Ralf Menssen Berlin 1984 ..r 
RR 
. 


ORG $8999 


COUT EQU $FDED 
RDKEY EQU $FDOC 
INVERT EQU $96 
WORKREG EQU 997 
BASADR EQU $1A 


‚Arbeitsregister 


OUTCOUNT EQU $I1C ‚Zählregister 
MEDCOUNT EQU $1D ‚Zählregister 
KEYCHR EQU $ED ‚Tastenspeicher 


STEPY EQU $EE 
STEPX EQU $EF 
ZWADR EQU $F9 
ENDADR EQU $FB 
INCOUNT EQU $FE 
ZWERG EQU $FF 
PORTDATA EQU $cP9P 
HANDSHK EQU $cIc1 


‚Schrittweite Y 
‚Schrittweite X 


‚Zählregister 
‚Zwischenergebnis 
‚Datenport Slot 1 


%* 
KRRKKKRKKEKTERKTET HH HH FH HEHE IK FE KR 

LDA #$99 

STA $C95® ;HGR1 

STA $0053 : #* 

STA $C954 >STELT 

STA $c957 ‚einschalten 
KRFRHKFKHKFRFKRTKTRFKRFHF KK FT KH FH TE HF HF FE HH HF FF I KH 
** PARAMETER EINGEBEN *%* 
KRKRFKKKKFERRFERKHFT KK TFT KH FF KH HK FH FE I KH HH FF FF 

LDX #$0® 
ZUULIE LDA DATEN,X ;"BILDSCHIRM 1 ODER 2" 

JSR COUT 

INX ‚ausgeben 

CPX _ #$2E 

BNE ZUULIE 


RR 
FALSCH JSR RDKEY 


CMP #$Bl 
BEQ SCREENIl ‚"]" oder "2" von 
CMP #$B2 ;Tastatur holen 
BNE FALSCH 
LDY +$49 ;HGR-Seite 2 
JMP WET 
SCREENl LDY #$29 ;‚HGR-Seite 1 
WET LDX #$9® 
STX BASADR 


STY BASADR+1 
rer 


LDX #$2E 
BIGGI LDA DATEN,X ;"POSITIV ODER NEGATIV" 
JSR COUT ‚auf Bildschirm 
INX ‚ausgeben 
CPX #$4A 
BNE BIGGI 
RR 
LDA #$09 
STA INVERT 
SLX JSR RDKEY 
CMP #$D® ‚Eingabe = P? 
BEQ POSITIV 
CMP #$CE ‚Eingabe = N? 
BNE SLX 
LDA #$01 ;‚invertiert 
STA INVERT ‚drucken 


Er 2 22 2 2 2 a nn ne ZZ 
POSITIV JSR DATAUS 


LDA +#$D8 

JSR HOLEN ‚Schrittweite X 

STA STEPX ;holen 

JSR DATAUS 

LDA #$D9 ;Schrittweite Y 

JSR HOLEN ;holen 

STA STEPY 
RR 
#*%* INITIALISIERUNG “x 
a a a a a ne ee 

LDA +#$0® 

STA $c952 ; TEXT ausschalten 

LDA #$9D 

JSR PRINT ‚CR ausgeben 


LDA BASADR+1 


‚Zeichen an Bildschirm 
;Zeichen von Tastatur 
‚Bild invertiert ausgeben 


;Bildschirm-Basisadresse 


‚Adressen-Übergaberegister 
‚endgültige Basisadresse 


‚Handshakeport (Bit7 = READY) 





rrelectronic 


Elektronik - Fachliteratur - Personal-Computer 


BASF qualimetric® 
Disketten 1.Wahl 


BASF-Disketten softsektoriert in Pappkarton 
3,25"-Disketten alle ohne Aufpreis mit Verstärkungsring. 
Type Beschreibung 10 Stk 100 Stk 
IXV u... 48 TPI, I-seitig, einfache Dichte ....... 46,90 459,00 
IDV ...... 48 TPI, 1-seitig, doppelte Dichte ...... 49,50 484,50 
2/96V.. 96 TPI, 2-seitig, doppelte Dichte ...... 82,50 799,50 





3M Sicherheits-Disketten 
5,25"-Disketten mit Verstärkungsring; softsektoriert. 

744-0 .48TPI, I-seitig, doppelte Dichte ...... 49,50 485,00 
745-0 .. 48 TPI, 2-seitig, doppelte Dichte ...... 72,50 679,00 
747-0 .. 96 TPI, 2-seitig, doppelte Dichte ...... 89,50 855,00 


Disketten - Doubler 14.50 


Mit diesem Diskettenlocher können Sie auch die Rückseite 
Ihrer SS- o. D5S-Diskette zum Abspeichern von Daten nutzen. 


5,25" - Plastikbox 35 


Formschöne Klappbox aus Hart-PVC für ca. 10 Disketten in 
den Farben grün, orange, schwarz, hellgrau, elfenbein oder 
anthrazit. Bitte die gewünschte Farbe angeben. Mischbar. 
Staffelpreise: I St. 5.95 10 St. 49.50 100 St. 459.- 


5,25" - Disketten-Kästen 
Diskettenbox ohne Schloß 24.95 


Repräsentative Disketten-Box aus deutscher Fertigung in den 
Abmessungen (T x Bx H) 306x 174x144 mm ohne Schloß mit 
topas farbenem Decke] für ca. 80 Disketten und 4 be- 
schriftbaren Stützplatten. Sehr preiswert! 


Diskettenbox 29.50 


aufklappbar 

für ca. 50 Disketten 

aus stoßfestem, antistatischem 
transparentem Äcryl mit 4 beweg- 
lichen, beschriftbaren Stützplatten. 


DiskettenboXx abschliesvar 39.50 


für ca. 85-100 Disketten 

aus antistatischem ABS-Kunststoff, 
Deckel aus hochwertigem Acryl({rauch- 
glasfarben). Der Trog kannplatzsparend 
in den Deckel gestellt werden. 9 beweg- 
lichen Unterteiler mit beschriftbaren 
Stützplatten sorgen für Übersicht 


Akustikkoppler s21Id 289.- 
300 Baud Modem CCITT Y.21 Standard 


e— o— 


le L 
1 [ I [ [ |] Te 


* Mit FTZ-Nummer * Gebühren- u. anmeldefrei 
* Anschluß an alle Computer mit Y24-Schnitt 
stelle * Vollduplexbetrieb * Answer- und 
Originate-Modus * MADE IN GERMANY * 


TELETERM 2+/e 198.- 


Telekommunikationssoftware für den Apple. 

* ohne serielles Interface * Datenübertragung 
über den Gameport * Anschlußfertig an s21d. 
Und das bietet Teleterm 2+/e: 

Kommunikation über den Bildschirm. Abspeichern empfang- 
ener Daten auf Diskette. Daten von Disk laden und senden. 
Drucken emfangener Daten. Einstellen der Kommunikations- 
parameter. Die Software für Kommunikations-Profis. 


Unser großer Hit auch für Ihren Apple //e: 
ERRELELE 80 Zeichen/64kB-RAM 
G&5 EEE Für APPLE /ve 
—# dtsch. Qualitätsprodukt 


u 
al. jetzt nur noch... > Fa 


Ventilator für Apple 2+/e 99.- 


Viele Zusatzkarten entwickeln zusätzliche wärme und 
blockieren sogar noch den natürlichen Luftstrom. Der 
leistungsfähige, geräuscharme Ventilator, sorgt für die 


notwendige Belüftung. 
Universelle Uhrenkarte 


a A are) 

1: I, y - 

3 r- 1 

u Wi 
. Kl de für Apple //e und //*+. 


Läuft unter DOS, ProDOS und PASCAL. 


Z-80 Karte (ohne Sofware) 149.- 
ITOH/EPSON-Grafikkarte mekaveı 230 .- 
Serielle Karte f. Imagewriter 239.- 
RS-232-C-Karte (Seriell) 175.- 
Disk-Controller (0.Software) 175.- 


Die Aufrüstung Ihres 128k MAC auf 
512k kostet bei uns nur: 1590.- 









MASTERCLOCK 325.- 


incl. Demodiskette 





Apple//e, //c + Macintosh 
Vorführ- und Messegeräte 
preisgünstig abzugeben. 


Ladenverkauf, Vorführung und fachgerechte Beratung 


r:r electronic 


Elektronik - Fachliteratur - Personal-Computer 
6900 Heidelberg I Breslauerstr. 29 Tel.06221/781500 
Geschäftszeiten: Mo. - Fr. 9-13 +14 - 18 Sa. 9 -13 Uhr 
Versandanschrift: 6900 Heidelberg ! Dammwegqg 2 





35 








CMP 
BNE 
LDA 
STA 
LDA 
JSR 
LDA 
JSR 
LDA 
JSR 
LDA 
JSR 
LDA 
JSR 
LDA 
JSR 
LDA 
JSR 
LDA 
JSR 


+$49 ;HGR2 angewählt? 
NEST 

+$99 - ;umschalten 
$c955 ‚auf HGR2 

#+$1B ‚ESC ausgeben 
PRINT 

#+#$0C ‚vertikale 
PRINT ;‚Schrittweite 
STEPY ‚ausgeben 
PRINT 

#+$1B ‚ESC 

PRINT 

#+$0D ;horizontale 
PRINT ;‚Schrittweite 
STEPX ‚ausgeben 
PRINT 

#+$1B ;‚ESC 

PRINT 

+$59 ;AUTO-LINEFEED 
PRINT ‚einschalten 


POUR EEETTERLTELELTLLLELELD ODE DD oo en 
xkkKk KHK DRUCKROUTINE ee kr 


” 
LDA 
STA 
JSR 
CLC 
LDA 
ADC 
STA 
LDA 
ADC 
STA 
DEC 
BNE 
LDA 
JSR 
LDA 
JSR 
LDA 
STA 
STA 
RTS 


* 
+$93 

OUTCOUNT 

SCHL2 


BASADR 

+$28 

BASADR 

BASADR+1 

+$09 

BASADR+1 

OUTCOUNT 

SCHL1 

#+$1B ;AUTO-LINEFEED 

PRINT ‚ausschalten 

+$59 

PRINT 

+$09 

$cQ51 ; TEXT wieder 

$0954 ‚anschalten 
;‚Programmende 


EETTITDIEEETTERTELLTEDDODL DON DEE Den nn 
xk*kk#%k%H% UNTERPROGRAMME KHK 


** 

SCHL2 LDX 
LDY 
STX 
STY 
LDA 
STA 
JSR 
CLC 
LDA 
ADC 
STA 
LDA 
ADC 
STA 
DEC 
BNE 
RTS 


*%* 


BASADR 
BASADR+1 
ZWADR 
ZWADR+1 
+$08 
MEDCOUNT 
SCHL3 


ZWADR 
+$89 
ZWADR 
ZWADR+1 
+$09 
ZWADR+1 
MEDCOUNT 
INLOP 


EZ 2 2 2 2 2 12 02 2 2712 27272732327 3272 2 2 2020202 2 0202 2 2 2 2 2 2 22 2 2 2 22 


SCHL3 LDX 
LDY 
STX 
STY 
LDA 
STA 
JSR 
CLC 
LDA 
ADC 
STA 
DEC 
BNE 
RTS 


ZWADR 
ZWADR+1 
ENDADR 
ENDADR+1 
+$08 
INCOUNT 
SCHLA 


ENDADR+1 
+504 
ENDADR+1 
INCOUNT 
LOOP 


KRRKKKRTHHTT EEE KK 


SCHL4 LDY 
ELP LDA 
STA 
LDX 
LDA 
STA 
LDA 
ROR 


36 





#500 
(ENDADR) ,Y ;Byte aus 
ZWERG Bildschirmspeicher 
#+$07 ‚7 Bildpunkte 
#500 
WORKREG 
ZWERG ;Bildpunkt 
;holen 





8l8E: 
8191: 
8199: 
819: 
8l9D: 
8lA5: 
8lA6: 
81A9: 
8lBl: 
8lBl: 
81B9: 
81BB: 
8lBE: 
8lBF: 
8lc2: 
8lCA: 
81D2: 
81D7: 
81DA: 
81DB: 
8lDE: 
8lE6: 


488 Bytes 


STA 
LDA 
ROL 
EOR 
ROR 
BCC 
LDA 
JMP 
LDA 
JSR 
DEX 
BNE 
INY 
CPY 
BNE 
LDA 
JSR 
RTS 


ZWERG 

WORKREG 

INVERT ‚eventuell 
invertieren 

SPC 

+$2E ‚Punkt drucken 

AUSG 

+$29 ;SPACE drucken 

PRINT 


ILP 


+$28 
ELP 
#+$0D 
PRINT ;Zeile beendet 


KRRKRKERERTRTK KK HH KK KK KR 


PRINT BIT 
BMI 
STA 
RTS 


HANDSHK 
PRINT ‚Drucker bereit? 
PORTDATA ;Ausgabe SLOT 1 


KRRKKRRFKKFHKTT HK TH HEHE FH RE HR 


DATAUS LDX 
HAL LDA 
JSR 
‚INX 
CPX 
BNE 
RTS 


#$4A 

DATEN, X ; 

COUT ; "SCHRITTWEITE' 
‚auf Bildschirm 

#+$5A ‚ausgeben 

HAL 


KRHHRRFRRRRRRRRTRT THREE RER RER 


HOLEN JSR 
LDA 
JSR 

WIEDER JSR 
STA 
CMP 
BCS 
CMP 
BCC 
STA 
JSR 
JSR 
CMP 
BCS 
CMP 
BCS 
CMP 
BCC 
JSR 
AND 
STA 
LDA 
AND 
ASL 
ASL 
ASL 
ASL 
ORA 
RTS 


COUT 
#+$BF 
COUT 
RDKEY 
KEYCHR 


+$B8 :ist die Eingabe 
‚eine Zahl kleiner 9? 


WIEDER 

#$AF ‚sonst 

WIEDER ;Neueingabe 

STEPY 

COUT 

RDKEY 

#+$C6 ;‚ASCII der Eingabe 

GOZA ;höher als "F"? 

+$B9 ‚ist die Eingabe 

GOZA ‚eine Zahl? 

#+$AF 

GOZA ‚Steuerzeichen 

COUT 

+7000P1111 ;rechtes Nibble 

STEPY 

KEYCHR 

#+700@01111 ;rechtes Nibble 
‚ist gleich 
‚linkes Nibble 
;Schrittweite 


STEPY 


III EDDERDELEEDE Te 2222 2 2 20222272 20275 
KHK DATEN KR 


DATEN HEX 
8D 8D 8D 


8D 8D 8D 


CD A® 
AB 
AB B2 


8D8D8D8D8D8D8D8D8D8D8DED 


8D8DEDEDEDEDSDSDEDEDEDED 


"BILDSCHIRM 1 ODER 2 ?" 


8D8D8D8D 


"P)OSITIV ODER N)EGATIV ?" 


8D8D8D8D 


"SCHRITTWEITE " 





Peeker 6/85 





Apple DOS 3.3 

von Ulrich Stiehl 

2. Aufl. 1984, 203 S., kart., 
DM 28,- 


Dies ist die erste deutschspra- 
chige Darstellung des Disket- 
tenbetriebssystems DOS 3.3 
für den Apple II/II Plus/lie, die 
sich sowohl an Applesoft- als 
auch an Assembler-Program- 
mierer wendet. Sinngemäß ist 
das Buch zweigeteilt: 

Der erste Teil behandelt aus- 
führlich die dem Applesoft-Pro- 
grammierer zur Verfügung ste- 
henden DOS-Befehle, wobei 
die Textfiles wegen ihrer gro- 
Ben Bedeutung und der ver- 
gleichsweise komplizierten 
Handhabung besonders darge- 
stellt werden. Viele Textfile- 
Tricks werden hier zum ersten- 
mal geschildert. 

Aber auch im zweiten Teil fin- 
det der reine Applesoft-Pro- 
grammierer insbesondere in 
dem Kapitel „Vermischte Tips, 
Tricks und Patches“ zahlreiche 
Anregungen. Im übrigen ist der 
zweite Teil für Assembler-Pro- 
grammierer gedacht. Neben ei- 
ner detaillierten Beschreibung 
der DOS-Interna enthält dieser 
Teil elf vollständige RWTS-An- 
wenderprogramme - z.B. 
CPM-Refiner, DOS-lose Da- 
tendisk, TSL-Maker, File- 
Reader, Pseudo-Disk-Driver 
und Fastbrun-Routine —, die 
Techniken enthüllen, die bis- 
lang noch niemals publiziert 
worden sind. Dieses DOS- 
Buch ist deshalb der unent- 
behrliche Begleiter für jeden 
Apple-Programmierer. 


Apple Il 

Basic Handbuch 
von Douglas Hergert 
304 Seiten, 116 Abb. 
DM 32,- 


Das Buch ist als Nachschlage- 
werk konzipiert, daß seinen 
Platz neben jedem APPLE Il, 
II+ und Ile haben sollte. Es 
richtet sich an Anfänger und 
fortgeschrittene Program- 
mierer. 


BASIC 
HAND 
BUCH 


D.Nerger 





Aus der Praxis heraus präsen- 
tiert der Autor Tips und Vor- 
schläge, die das Programmie- 
ren leichter, und zugleich effi- 
zienter ma&hen. Alle Applesoft- 
und Integer-BASIC-Begriffe 
sind alphabetisch aufgelistet 
und werden eingehend erklärt. 


Peeker 6/85 


Dazu werden alle DOS-Befehle 
(neben vielen Begriffen der 
Computerterminologie) vorge- 
stellt. 

Beispielprogramme zeigen 
dem Nutzer, wie jeder Befehl 
funktioniert und helfen, die rich- 
tige Anwendung zu üben. Un- 
ter anderem lernt der Leser 
den besten Weg, um FOR/ 
NEXT-Schleifen und IF/THEN- 
Entscheidungen für seine 
Zwecke einzusetzen. 

Durch die präzise und leicht 
verständliche Sprache des Au- 
tors werden auch schwierige 
Befehle einfach in der Anwen- 
dung. 


Apple Maschinen- 
sprache 

von Don und Kurt Inman 
1984, 208 S., zahlr. Abb. und 
Tabellen, DM 49,— 


SPRACHE 





Dieses Buch ist wahrscheinlich 
die beste Einführung in die 
6502-Programmierung für den- 
jenigen Assembler-Anfänger, 
der zuvor noch nie ein Maschi- 
nenprogramm geschrieben 
hat. 


Aus dem Inhalt: 

Applesoft II BASIC - kurzge- 
faßt — Alles über Zeichen - Al- 
les über Speicher - Alles über 
Maschinenbefehle — Maschi- 
nenprogramme mit BASIC ein- 
geben - Graphik — Text- Ton— 
Arithmetik — Was tun mit den 
Maschinenprogrammen 


Apple Il 

leicht gemacht 

von Joseph Kascmer 

1984, 185 S., zahlr. Abb., kart., 
DM 28,- 


Dies ist ein Buch, wie es sich 
jeder Apple-Anfänger nur wün- 
schen kann: Schrittweise, 
leichtverständliche Anleitung 
zum Umgang mit dem Apple 
mit einigen durchsichtigen, un- 
komplizierten Beispielen in Ap- 
plesoft, die ihn nicht Abschrek- 
ken, sondern ermutigen sollen, 
sich mit dem Gerät näher ver- 
traut zu machen. Damit ist „Ap- 
ple Il leicht gemacht“ das idea- 
le Einsteigerbuch für den rei- 
nen Anwender, der nicht nur 
„auf den Knopf drücken“, son- 
dern zumindest einige Details 
aus der Black Box namens Ap- 
ple erfahren will. 





Aus dem Inhalt: 

Kontrolle des Geräts — Schrei- 
ben und Zeichnen auf dem 
Bildschirm -— Geheimnisvolle 
Abläufe: Programme - Ver- 
schiedene Eingriffsmöglichkei- 
ten — Mobile Speicher: Disket- 
ten — Kontrollmöglichkeiten — 
Das Innenleben 


Apple Assembler 
Tips und Tricks 


von Ulrich Stiehl 
1984, 226 S., 3 Abb., kart., 
DM 34,— 


„Apple Assembler“ wendet 
sich an alle, die bereits Anfän- 
gerkenntnisse der 6502-Pro- 
grammierung haben - z.B. 
aufgrund des Buches „Apple 
Maschinensprache“ — und nun- 
mehr ein Nachschlagewerk für 
ihren Apple Il Plus/lle/lic su- 
chen, in dem alle wichtigen 
ROM-Routinen sowie eine 
Vielzahl sonstiger Hilfspro- 
gramme in einer systemati- 
schen Form zusammengestellt 
werden. Insgesamt umfaßt die- 
ses Buch über 40 Utilities, dar- 
unter mehrere völlig neuartige 
Programme wie Double-Lores, 
Double Hires, Screen-Format 
u.a. 

Der erste Teil enthält ein Repe- 
titorium der wichtigsten Befeh- 
le, Adressierungsarten und 
sonstigen Besonderheiten des 
6502. 

Im zweiten Teil werden alle 
Adressen des Monitors zusam- 
mengestellt, die für Assembler- 
Programmierer von Nutzen 
sein können. Darüber hinaus 
findet der Leser Unterroutinen 
für hexadezimale Addition/ 
Subtraktion/Multiplikation/Divi- 
sion, Binär-Hex-ASCIl-Um- 
wandlung usw. 

Der dritte Teil befaßt sich mit 
der Speicherverwaltung der 
Language Card und der Ile- 
64K-Karte und enthält Move- 
Programme zum Verschieben 
von Daten in die und aus der 
Language Card sowie der 64K- 
Karte. 


BUCHSHOP 


Der vierte Teil ist dem Ap- 
plesoft-ROM gewidmet und li- 
stet eine große Anzahl nützli- 
cher Interpreter-Adressen. Bei 
den Utility-Programmen liegt 
das Schwergewicht auf Fließ- 
kommamathematik einschließ- 
lich Print Using. 

Der letzte Teil behandelt den 
Text- und Graphikspeicher. 
Neben einem professionellen 
Maskengeneratorprogramm 
werden auch Routinen zur 
Double-Lores- und Double-Hi- 
res-Grafik vorgestellt. 


Arbeiten mit dem 
Macintosh 


von N. Hesselmann 
416 Seiten, 320 Abb. DM 54,— 


Das Buch erklärt den Umgang 
mit dem Macintosh von Grund 
auf, wobei auch auf elementare 
Dinge eingegangen wird, wie 

z. B. die Benutzung der Tasta- 
tur und der Maus, das Einlegen 
von Disketten und den System- 
start. Ganz besonderes Augen- 
merk wird auf die Erklärung der 
speziellen Software-Umge- 
bung des Macintosh gelegt, 
wobei das Menü- und Fenster- 
konzept sowie das Anwählen 
durch Piktogramme gekenn- 
zeichneter Funktionen klar dar- 
gestellt wird. 





Der Umgang mit den Program- 
men MacPaint und MacWrite 
wird erläutert; dies geschieht 
teilweise anhand von Beispie- 
len, die leicht nachvollzogen 
werden können. Ein umfangrei- 
ches Kapitel ist dem für den 
Macintosh erhältlichen Micro- 
soft-BASIC gewidmet. 


BASIC Ubungen 

für den Apple 

von J. P. Lamoitier 

1983, 252 S., zahlr. Abb., kart., 
DM 38,— 


Das Buch ist konzipiert, allen 
Apple-Anwendern Applesoft- 
BASIC durch praktische Ubun- 
gen an Hand von reellen Pro- 
grammen beizubringen. Daten- 





verarbeitung, Statistik, kom- 
merzielle Programme, Spiele 
und vieles mehr. Jede Übung 
beinhaltet eine Beschreibung 
der Problemstellung, eine Ana- 
Iyse der Lösungsmöglichkei- 
ten, ein Flußdiagramm und ein 
fertiges Programm samt Pro- 
belauf. 






Aus dem Inhalt: 
Ihr erstes BASIC-Programm — 
Flußdiagramme — Übungen mit 
Integerzahlen — Elementare 
Beispiele aus der Geometrie — 
Allgemeine Ubungen aus der 
Datenverarbeitung — Mathema- 
tische Berechnungen - Kauf- 
männische Berechnungen — 
Spiele - Operations Research 
— Statistik 


Apple ProDOS 
für Aufsteiger 
Band 1 


von Ulrich Stiehl 
1984, 202 S., kart., DM 28,— 


ProDOS ist das neue „profes- 
sionelle DOS“ (Professional 
Disk Operating System) für den 
Apple Ile sowie den mit einer 
Language Card ausgestatteten 
Apple Il Plus. Band 1 befaßt 
sich mit den theoretischen 
Grundlagen von ProDOS, der 
internen und externen Spei- 
cherorganisation und enthält 
grundlegende Beispielpro- 
gramme für Assembler-Pro- 
grammierer sowie generelle 
Untersuchungen zum BASIC- 
SYSTEM. Da ProDOS über er- 
heblich vielfältigere und lei- 
stungsfähigere, zugleich je- 
doch erheblich kompliziertere 
Dateistrukturen verfügt, sind 
theoretische Kenntnisse von 
ProDOS unabdingbar, wenn 
man die Features von ProDOS 
voll ausschöpfen will. 

Aus dem Inhalt: 

Ein erster Überblick - ProDOS 
und DOS 3.3 — Interne Spei- 
cherorganisation — Externe 
Speicherorganisation — MLI 
(Machine Language Interface) 
— ProDOS für Applesoft-Pro- 
grammierer 


37 








Fourier-Analyse 


von Peter Walber 









































HIT 
LH IH 
FEHTLEEFR 
Z 






zus: 

HHLD 

2 [pR 

WEHR 
Tz 






MHZ 
7) 


EEE 


\ 
TERM 
IT N 


——N 
SUN 


a 
an BT Ze 
ee iR Wen 1) 


N 


ZN 





38 


Mrz 
eM72 
le 


. Z 


— 





Jeder, der einmal vor das Problem gestellt 
war, eine Funktion zu approximieren, wird 
sicher bereits auf die Fourier-Analyse ge- 
stoßen sein, vor allem bei der Darstellung 
von unstetigen periodischen Funktionen, 
also mathematisch schwierig darstellbaren 
Kurvenzügen. 

Grundlage des Programms ist die von 
Fourier im Jahre 1822 aufgestellte Theo- 
rie, die besagt, daß sich beliebige periodi- 
sche Funktionsverläufe als Linearkombi- 
nation von Sinus- und Cosinus-Termen 
darstellen lassen. Mathematisch formuliert 
sieht die Theorie so aus: 


ft) = a, + & a, cos(kwt) + b, sin(kut) 
mit den sog. Fourier-Koeffizienten: 


= : f ft) cos(kt) dt 


bx = - f ft) sin(kot) dt 


dabei muß die in den Integralen auftreten- 
de Funktion fft) in einem IntervallO <t<T 
vorliegen (siehe Abb. 1). 

Bei manchen Funktionen sind die auftre- 
tenden Integrale sehr schwierig zu be- 
rechnen, oder es gelingt nicht, den Kur- 
venzug mathematisch zu beschreiben 
(z.B. Brummspannung eines Netzteiles). 
Genau hier kann das Programm einsetzen. 


Ich habe folgende Gliederung des Pro- 
gramms vorgesehen: 

1. Analyse eines Kurvenzuges nach Stütz- 
stellen (FOURIER.MAIN). 

2. Ausgabe des Frequenzspektrums 
(FOURIER.SPEC). 

3. Synthese einer Funktion aus Fourier- 
Koeffizienten (FOURIER.SYN). 

Die Aufteilung des Programms in drei ein- 
zelne selbständige Module wurde aus 
Speichergründen gewählt, da neben gro- 
Bem Komfort auch eine grafische Auswer- 


TR tung geboten werden sollte. 
I 











Mn FL [73 









—IT 


Peeker 6/85 











at fu cos (kat) dt 


Bild 1 


Das Modul FOURIER.MAIN 


Das Modul gliedert sich in die folgenden 
Teile: 

— Initialisierung und Hauptmenü (Zeilen 
1000-1420). 

— Eingabe der Stützstellen wahlweise von 
Diskette, Tastatur oder von einer analyti- 
schen Funktion (Zeilen 1450-1750). 

— Berechnung der Fourier-Koeffizienten 
(Zeilen 1760-2230). 

— Ausgabe der Ergebnisse und Plot der 
Funktion (Zeilen 2240-2730 und 
2980-3500). 

— Abspeichern der berechneten Daten (ab 
Zeile 3630). 

Es folgt nun eine genauere Beschreibung 
der wichtigen Teile im Programm, ver- 
mischt mit den unbedingt notwendigen 
Hintergrundinformationen über die Fou- 
rier-Analyse. 


Eingabe der Stützstellen 

Da wir nicht in der Lage sind, eine unendli- 
che Reihe zu berechnen, müssen wir eine 
Obergrenze festlegen. Wir brechen also 
die Reihe ab und approximieren nur mit 
einem trigonometrischen Polynom vom 
Grade n. 


ft) = a0 + & a, cos(kot) + b, sin(kat) 


Der Algorithmus von Runge (1), der hier 
verwendet wird, erwartet 2 - n Stützstellen. 
Diese müssen dem Graphen in äquidi- 
stanten Intervallen entnommen werden. 
Betrachten wir hierzu die in Abb. 2 darge- 
stellte Rechteckfunktion. Die Funktions- 
werte f(0) = 1, f(1) = 1, f(2) = 1,18) = 1, 
f(4) = 1 f(5) = 0, f(6) = 0, f(7) = O können 
dem Graphen entnommen werden. Hier- 
bei ist dt der Abstand auf der t-Achse 
zwischen dem Wert f(i) und fli + 1). 


& 
- 


ult) 


wu. 


vi 33 3 5838 5 


u 


a 


Bild 2 2n 


Peeker 6/85 


Berechnung der Koeffizienten 

Der hier verwendete Algorithmus verlangt 
vom Programm die Aufsummierung nach 
den folgenden Formeln: 


2n—1 
a, = . f(t) cos 


Der Beweis folgt aus den Orthogonalitäts- 
relationen für trigonometrische Funktionen 
und ist hier sicher nicht von Interesse (2). 
Dieses Gleichungssystem ist nur mit gro- 
Bem Rechenaufwand lösbar. Wir benutzen 
deshalb die Symmetrie-Eigenschaften der 
Sinus- bzw. Cosinus-Funktion. 


cos (wt) 


sin (wt) 





wt=5 Bild 3 
Wie aus Abb. 3 ersichtlich ist, wiederholen 
sich alle Funktionswerte nach x = n/2. 
Weiter gilt sin(x) = cos(n/2 - x). Wir bilden 
daher zunächst die zweite Halbperiode auf 
die erste ab und danach die zweite Viertel- 
periode auf die erste. Dies wurde in den 
Zeilen 4500-4600 verwirklicht. Die zuge- 
hörigen Sinus-Werte werden in den Zeilen 
1610-1640 im Feld X(l) abgelegt. In den 
Zeilen 1750-2220 erfolgt dann die eigent- 
liche Berechnung der Fourier-Koeffizien- 
ten. Dieser Algorithmus ist von Sarnow in 
(4) beschrieben worden. Ab Zeile 2230 
werden die Ergebnisse ausgegeben, ent- 
weder auf den Bildschirm oder sofort zum 
Drucker. Die Druckerausgabe muß even- 
tuell an einen anderen Drucker angepaßt 
werden (Zeile 2800 und 4620). 

Eine weitere Option dieses Moduls ist die 
Berechnung der Fourier-Sinus-Reihe. 
Dies ist die Darstellung der Reihe in der 
Form: 


fit) = 0, + 2 0, sin(kot + px) 


Grafik-Auswertung 

Damit das Programm nicht nur zur Schaf- 
fung von Datengräbern dient, wurde eine 
komfortable Grafik-Auswertung eingebaut 
(2400 ff.). Dabei wird zuerst die Funktion 
mit wählbarem Grad des trigonometri- 
schen Polynoms geplottet. Dadurch kann 
man sich die Genauigkeit der Approxima- 
tion Schritt für Schritt ansehen. Danach 
wird die Funktion noch einmal nach den 
eingegebenen Stützstellen gezeichnet. 
Die Beschriftung der Achsen erfolgt durch 
POKESs von bestimmten Bitmustern direkt 
in den Grafik-Speicher. 


4 Technik 44 


Speicherung der Ergebnisse 

Im Anschluß daran besteht die Möglich. 
keit, den Plot als Bild-File abzuspeichern 
oder eine Hardcopy auszugeben. Weiter 
wird erfragt, ob die Koeffizienten oder die 
Funktionswerte als Datei für spätere Be- 
trachtungen gesichert werden sollen. Man 
kann sich damit eine regelrechte Biblio- 
thek von Funktionen anlegen. Ab Zeile 
3630 folgen dann einige Unterprogramme, 
die die beschriebenen Möglichkeiten ver- 
wirklichen. 

Eine Besonderheit liegt in der Handha- 
bung der Daten-Files. Dem Dateinamen 
wird automatisch ein Suffix angehängt. 
Sollen also Koeffizienten abgespeichert 
werden, so gibt man z.B. „DREIECK“ als 
Dateiname an; auf der Diskette erscheint 
dann eine Datei mit dem Namen „DREI- 
ECKKOEFF“. Will man die Daten wieder 
einlesen, dann muß man auf die Frage 
nach der Datei den vollen Namen ange- 
ben, also „DREIECKKOEFF“. 

Im Programm wurde als maximaler Grad 
der Fourier-Reihe 24 festgelegt. Dies ist 
sicher für den normalen Fall ausreichend. 
Ein Nachteil liegt ohne Zweifel in der Un- 
genauigkeit bei der Analyse sehr unsteti- 
ger Funktionen. Das Verfahren wird mit 
zunehmender Stützstellenzahl natürlich 
exakter. Genauere Untersuchungen zei- 
gen jedoch, daß der Rechenaufwand nicht 
proportional steigt, sondern viel stärker. 
Außerdem kommt noch die mangelhafte 
Rechengenauigkeit des Basic-Interpreters 
zum Tragen. Abhilfe schafft zumindest teil- 
weise der Übergang auf ein FORTRAN- 
Programm mit Double-Precision (3). Die 
hier erzielten Ergebnisse stellen aber si- 
cher einen sinnvollen Kompromiß dar. 
Das Programm wurde für 80 Zeichen/Zeile 
geschrieben und benutzt deshalb Ctri-L 
statt des HOME-Befehls. Da beim Ile mit 
erweiterter 80-Zeichen-Karte und dem IIc 
die HGR2 in Verbindung mit der 80-Zei- 
chendarstellung nicht aufgerufen werden 
kann, wird vor der Grafik auf Normalausga- 
be zurückgeschaltet. 

Durch den menügesteuerten Aufbau sind 
Bedienungsfehler weitgehend ausge- 
schlossen. 

Beispiele 1 zeigt die Möglichkeit des Pro- 
gramms. Bei der dargestellten Rechteck- 
funktion wurde der Gradn =5 undn = 12 
gewählt. Hierbei wird die unterschiedliche 
Güte der Approximation deutlich. 


Die folgenden Module FOURIER.SYN und 
FOURIER.SPEC können aus Platzgründen 
nicht abgedruckt werden und sind daher 
nur auf der Peeker Sammeldiskette ent- 
halten. 


39 








Das Modul FOURIER.SYN 


Der Aufruf erfolgt im Hauptmenü mit „2 
für Synthese. Dieser Teil bietet die Mög- 
lichkeit,aus früher berechneten Koeffizien- 
ten eine Funktion darzustellen. Dies ge- 
schieht mit wählbarem Grad des trigono- 
metrischen Polynoms. Das Modul selbst 
besteht zum größten Teil aus Teilen des 
Hauptprogramms FOURIER.MAIN. 


Das Modul FOURIER.SPEC 


Der Aufruf erfolgt mit der Wahl von „3“ für 
Frequenzspektrum im Hauptmenü. Bevor 
das Modul genauer beschrieben wird, wol- 
len wir zunächst die nötige Theorie kurz 
erläutern. Das „Spektrum“ einer Funktion 
gibt Auskunft über die Beträge der enthal- 
tenen Schwingungsanteile. Man kann also 
aus der Darstellung sofort entnehmen, 
welche Frequenzanteile in welcher Stärke 
vertreten sind. Die Verwirklichung sieht 
nun wie folgt aus: 

— Eingabe der Koeffizienten von wahlwei- 
se Disk oder Tastatur (Zeilen 1000-1160). 
— Vorbereiten des Plots (Zeilen 











FOURIER.MAIN 


1008 
1919 
1929 
1930 
1049 
1059 
1069 
1078 
1075 


REM x**%* Fourier-Analyse 
REM *** Peter Walber, Mai 
REM 

HIMEM: 16384 

D$ = CHR$ (4) 

PRINT D$; "PR#3'" 


xx%* 
'84 xx%* 


DIM A(25),B(24),Y1(169) ,22(5®),SD(25) 
DIM AA(25),PHI(25) 






































1400 IF IN < 1 OR IN > 4 THEN 1399 


40 





DIM Y(59),X(59),YY(58),SS(25),DS(25),DD(25) 


. . En . F o 1 FR I E R Bu A H A L T = 2 


FesSı in IJRS=SZPI 





RR 


Beispiel 1:n = 5 (links) undn = 12 (rechts) 


1160-1420). Hierzu gehört die Erstellung 
des Koordinatenkreuzes und eines Binär- 
Feldes zur Beschriftung des Plots. 


— Zeichnen des Plots (Zeilen 1450-1730). 
Dazu wird vorher auf den maximalen Wert 
normiert und dann proportional zur Größe 
des betreffenden Koeffizienten ein Strich 
bei der zugehörigen Frequenz gezeichnet. 
Dabei sind die Koeffizienten a(l) durchge- 
zogen und die b(l) gestrichelt dargestellt. 
— Abspeichern des Bildes, der Koeffizien- 
ten und die Hardcopy-Möglichkeit (Zeilen 
1750-Ende). 


GOTO 119® 
REM 
REM x*x** 


REM 


PRINT : 


PRINT 


3";: PRINT NEXT I 
1278 PRINT " "; FOR I = ® TO 
12808 FOR I = 1 TO 71: PRINT " ";: NEXT I PRINT 
1298 PRINT PRINT : 
1368 PRINT " "; 
131® PRINT TAB(2®)'"Ende PRINT : 
4":% PRINT PRINT : 
1326 PRINT " ”:; REM 
13368 FOR I = 1 TO 71: PRINT " ";: NEXT I 
1349 PRINT REM 
1350 FOR I = ® TO 79: PRINT "-";: NEXT I 
1360 PRINT TAB(2®)"Bitte die Eingabe der Programmwahl' GOSUB 4539 
1380 FOR I = ® TO 79: PRINT "-";: NEXT I: PRINT Al =9B:A2=d 
1398 INPUT "1,2,3,4 ";IN FOR I 


Al =Al 


Start der Analyse 
REM **%* Eingabe der Stützstellen **x* 


PRINT CHR$ (12) 

PRINT "Analyse einer Funktion nach Runge" 
PRINT "Notwendige Bedingung : 
geradzahlig " 


IF IN$ = "D" THEN GOSUB 3949:DT$ = "J": 
IF IN$ < > "T" AND IN$ < > "F" THEN 1469 


"Grad der Fourier-Reihe: 
IF N/ 2 <> INT (N / 2) THEN PRINT : 
..N.. muß durch zwei teilbar sein.": 

IF N > 24 THEN PRINT : 


M- 1: 








Die Zeilen, die die Files anlegen, sind be- 
reits in FOURIER.MAIN vorhanden. 


Benötigte System-Konfiguration: Apple Il, 
DOS 3.3, 80-Zeichenkarte, Drucker mit 
Grafik-Interface. 


Literatur: 

(1) Zurmühl, Praktische Mathematik für In- 
genieure und Physiker, Springer 1965 

(2) Hamming, Numerical Methods for 
Scientists and Engineers, McGraw-Hill, 
1962 

(3) McCracken, FORTRAN 

(4) Sarnow, mc 1/84, S. 82-85 


ON IN GOSUB 1469, 3529,3579,361® 


*x*% 


Grad der Reihe 


PRINT "Eingabe der Stützstellen von (D)isk, 
(T)astatur oder von einer": PRINT: 
"analytischen (F)unktion' 


PRINT 


GOTO 1599 


IEEN 

PRINT "Bitte 
PRINT : GOTO 1569 
PRINT "Nmax=24":N = 24 


IF IN$ = "F" THEN GOSUB 4319 


X(I) = SIN (I « DX):X(N - I) = X(I):X(N+ I) = - 
X(I):X(M- I) =X(N+ I) 


THEN 179® 
THEN 1790 
M-L1 


= ". 


1080 PRINT CHR$ (12) PRINT : 
1098 FOR I = ® TO 79: PRINT "-";: NEXT I 
1188 PRINT " Fourier-Analyse'" 
1118 FOR I = ® TO 79: PRINT "-";: NEXT I: PRINT GET IN$ 
1120 PRINT " "; 
1138 PRINT "Optionen:": PRINT " ";: FOR I = ® TO 72: PRINT 

">: NEXT I: PRINT PRINT 
1148 PRINT " "; INPUT 
1158 PRINT TAB(2®)'"Analyse einer einzugebenden Funktion 

1"; 
1155 PRINT 
1160 PRINT " "; P=N/2:M=2#N 
1180 FOR I = 1 TO 71: PRINT " ";: NEXT I 
1185 PRINT DX = 3.141592654 / N 
12088 PRINT " "; FOR I = ® TO P 
1218 PRINT TAB(2®)'"Synthese einer gesuchten Funktion 

2:% PRINT 
1220 PRINT " "; NEXT I 
1230 FOR I = 1 TO 71: PRINT " ";: NEXT I IF DT$ u 
1240 PRINT IF IN$ a 
1258 PRINT" "; FOR I = ® TO 
1268 PRINT TAB(2®)"Frequenzspektrum ausgeben PRINT "YI";T; 


© INPUT IT 


PRINT "TI": E;"j= #;7IT): MEER LI: 


INPUT "Änderung eines eingegebenen Wertes? 
(J/N)";IN$: IF IN$ < > "J" THEN 1749 

INPUT "Index des zu ändernden Wertes";I 
INPUT "Neuer Wert";Y(I): 


GOTO 1719 


REM *** Start der Berechnung *%*%* 


Y(8) = Y(ß) / 2:Y(M) = Y(B):Y(N) = Y({N) / 2 


ö TO P STEP 2 
+ SS(I) 


Peeker 6/85 





1820 NEXT I 

1830 FOR I = 1 TO P STEP 2 

184ß A2 = A2 + SS(I) 

1850 NEXT I 

1860 A(®) = (Al + A2) / M:A(N) = (Al - A2) /M 

1878 FOR Nl = 1 TO P STEP 2 

1880 Al = B:A2 = B:Bl = P:B2 = 9 

1898 L = :K = P 

1988 FOR I = ß TO P STEP 2 

1918 Al = Al + DS(I) &* X(K):B2 = B2 + SD(I) « X(L)- 

1928 L=L+2+Nl: IFL=MTHENL=L-M 

1930 K=K+2+ Nl: IFK=MTHENK=K-M 

1949 NEXT I 

1958 PRINT ">" 

19608 L = NL:K=P+HNl 

197® FOR I = 1 TO P STEP 2 

19808 A2 = A2 + DS(I) = X(K):Bl = Bl + SD(I) * X(L) 

1998 L=L+2+Nl: IFL=MTHENL=L-M 

2200 K=K+2«Nl: IFEK=MTHENK=K-M 

20190 NEXT I 

2020 A(Nl) = (Al + A2) / N:A(N - Nl) = (Al - A2) /N 

2030 B(Nl) = (Bl + B2) / N:B(N - Nl) = (Bl - B2) /N 

2040 NEXT Nl 

2050 FOR Nl = 2 TO P STEP 2 

2068 Al = B:A2 = B:Bl = B:B2 = 9 

2078 L = B:K = P 

2080 FOR I = ßÖ TO P STEP 2 

2090 Al = Al + SS(I) * X(K):B2 = B2 + DD(I) « X(L) 

2100 L=L+2+Nl: IFL=MTHENL=L-M 

2118 K=K+2+ Nl: IFK=MTHENK=K-M 

2120 NEXT I 

2138 L=Nl:K=P+Nl 

2140 FOR I = 1 TO P STEP 2 

2158 A2 = A2 + SS(I) * X(K):Bl = Bl + DD(I) « X(L) 

2l6d® L=L+2» Nl: IFL=MTHENL=L-M 

2170K=K+2+Nl: IFK=MTHENK=K-M 

2180 NEXT I 

2198 A(Nl) = (Al + A2) / N:A(N - Nl) = (Al -A2) /N 

2200 B(Nl) = (Bl + B2) / N:B(N - Nl) = (Bl - B2) /N 

2210 NEXT Nl 

2220 REM 

2230 REM **%* Ende der Berechnung *%** 

2240 REM *%** Beginn der Ausgabe x*%* 

2250 REM 

2269 INPUT "Ergebnis auf den (D)rucker oder (B)ildschirm? 
"-1IN$ 

2278 IF IN$ = "D" THEN GOSUB 3309: GOTO 2351 

2280 IF IN$ < > "B" THEN 2269 

2298 PRINT "Ergebnis:": PRINT "-—-—-— ": PRINT 

2300 PRINT : PRINT "a(®)=";A(®): PRINT 

2318 FOR I = 1 TON 

2320 PRINT "A(";I;")=";A(I), TAB(48)"B(";I;")=";B(I) 

2330 NEXT I: PRINT : INPUT "Weiter ——->> CR <<---";IN$ 

23408 PRINT : INPUT "Ausgabe auf den Drucker? (J/N)";DD$ 

2350 IF DD$ = '"J" THEN GOSUB 3369: PRINT 

2351 PRINT "Darstellung als Fourier-Sinus-Reihe:'": PRINT 

2352 FOR I = 1 TO N: LET AA(I) = SQR (A(I) 1 2 +B(I) 1 2) 

2353 IF B(I) = ® AND A(I) = ® THEN PHI(I) = B: GOTO 2365 

2354 IF B(I) = ® AND A(I) > ® THEN PHI(I) = ß: GOTO 2365 

2355 IF B(I) = ® AND A(I) < ® THEN PHI(I) = 189: GOTO 2365 

2356 IF A(I) = ® AND B(I) > ® THEN PHI(I) = 99: GOTO 2365 

2357 IF A(I) = ® AND B(I) < ® THEN PHI(I) = - 99: GOTO 2365 

2360 LET PHI(I) = ATN (A(I) / B(I)) 

-2361 LET PHI(I) = 180 « PHI(I) / 3.141592654 

2365 NEXT I 

2366 PRINT "C(®)=";A(®): PRINT 

2367 FOR I = 1 TO N: PRINT "C(";I;")= ";AA(TI);: HTAB 20: 
PRINT "Phi(";I;")= ";PHI(I): NEXT I 

2368 PRINT : INPUT "Weiter —->>CR<<--";IN$ 

2369 REM 

2378 REM *** Vorbereitung des Plots xxx 

2380 REM 

2398 PRINT CHR$ (1) 

2400 OM = 2 * 3.141592654: PRINT CHR$ (12) 

241l® PRINT TAB(2®)"Vorbereitung des Plots": PRINT 
"TAB (29 ) "----—-- 0. . " 

2420 PRINT : PRINT "Plotten der Funktion mit wählbarer 
Genauigkeit möglich": PRINT 

2430 PRINT : INPUT "Annäherung einschließlich der Oberwelle 
Nr.:";G%: IF G% > N THEN G% = N 

2440 IF G% > N THEN G% = N 

2450 IF G% < ® THEN PRINT : PRINT "Fehlerhafte Eingabe ": 
GOTO 243® 

2468 PRINT : PRINT "Moment bitte": PRINT 

2470 REM 

2480 REM *** Approximation mit den oben berechneten 
Fourier-Koeffizienten x*** 

Peeker 6/85 








technik 4.4 


REM 

FOR Il = ß TO 159 

S=A(ß) 

FOR I2 = 1 TO 6% 

S=S+ A(I2) * COS (I2 * OM * Il / 160) + B(I2) « SIN 
(I2 *x OM * Il / 16ß) 

NEXT I2 

YÄM(Il) =S 

NEXT Il 

J=]1 

PRINT "au: 

GOSUB 300% 

FOR I = ß TO 159 

HPLOT I + 19,96 - 90 * Yl(I) / YO 

NEXT I 

INPUT "---->> CR ";IN$ 

FOR I=8 TOM-LN1 

IF ABS (Y(I)) > YO THEN YO = ABS (Y(T)) 

NEXT I 

FOR I = TOM-]1l 
C=6:D d:E=G:F=d 
C=1® +2 x 1Ix 79 / M:D = 96 - 90 = Y(I) / YO:E = 19 
+2 % (I+1) x 79 /M:F = 96 - 98 « Y(I +1) / YO 
HPLOT C,D TO E,F 

NEXT I 

GET ZZ$: PRINT CHR$ (12) 

PRINT D$;"PR#3'": TEXT 

INPUT "Abspeichern des Plots als Bild-File? (J/N)";BF$ 
IF BF$ < > "J" THEN 2790 

PRINT 

INPUT "Auf Slot=";S: PRINT : INPUT "und Drive=";D: 
PRINT 

PRINT D$;"BSAVE FPIC1,A$4000,L$1IFFF,S";S;",D";D 
PRINT : INPUT "Hardcopy des Plots erstellen? 
(J/N)";HK$ 

IF HK$ = "J" THEN GOSUB 462 

PRINT 

PRINT : INPUT "Erstellen eines weiteren Plots mit 
anderer Genauigkeit? (J/N)";NP$ 

IF NP$ = "J" THEN PRINT CHR$ (12): GOTO 2419 
PRINT 

INPUT "Fourier-Koeffizienten abspeichern? (J/N)";IN$ 
IF IN$ = "N" THEN PRINT : GOTO 29@® 

IF IN$ < > '"J'" THEN 2859 

GOSUB 3639 

PRINT 

INPUT "Eingegebene Funktionswerte speichern? 
(J/N)";IN$ 

PRINT FRE (®) 

IF IN$ = "N" THEN 1980 

IF IN$ < > "J" THEN 2999 

FOR I=9 TOM - 1:Yl(I) = Y(I): NEXTI 

NF = N: GOSUB 379® 

GOTO 1989 

REM 

REM *%*%* Bildrahmen generieren x*%*%* 

REM 

X0 = 2 * 3.141592654:XU = 9:YO = - 1.E25:YU = 1.E25 
FOR I = ® TO 159 

IF Yl(I) > YO THEN YO = YL(I) 

IF YlM(I) < YU THEN YU = Yl(I) 

NEXT I 

FOR I = ® TO 29: PRINT : NEXT I 

PRINT : PRINT TAB(1®)"Ymax= '";YO 

PRINT : PRINT TAB(1®)"Ymin= ";YU 

PRINT 

IF ABS (YU) > YO THEN YO = ABS (YU) 

PRINT TAB(19)"XU= ";XU 

PRINT : PRINT TAB(1®)"Xo= ";XO0 

PRINT : PRINT "Nährung der Funktion nach Fourier 
einschließlich Oberwelle Nr.: ";G%: PRINT 

PRINT : PRINT "Weiter ——-->> CR <<---";: GET XX$: PRINT 
FRE (9) 

PRINT D$;"PR#ß": HGR2 : HCOLOR= 7 

GOSUB 5®@®: REM *** Bildrahmen generieren *%*%* 

FOR I = ® TO 199 

HPLOT 18,46 + I 

NEXT I 

FOR I = 8 TO 179 

HPLOT I,96 

NEXT I 

FOR I = ® TO 89 STEP 1® 

HPLOT 9,96 —- I 

NEXT I 

FOR I = 11 TO 91 STEP 19 

HPLOT 1,97 

NEXT I 

RETURN 


® 


41 





42 


#3 Druckerausgabe #kakakakr 
Die hier verwendeten Druckersteuerzeichen gelten 
für den STAR 
GEMINI-Drucker und sind an den verwendeten Drucker 
anzupassen. 
REM CHR$(9);"G2" gibt eine Hardcopy der HGR2-Seite auf 
den Drucker. 
REM CHR$(87);CHR$(®) schaltet auf Normalbreite zurück. 
REM CHR$(87) ;CHR$(1) schaltet auf Breitschrift um. 
REM 
PRINT D$;"PR#1": PRINT CHR$ (27); CHR$ (87); CHR$ (1) 
PRINT '"FOURIER-ANALYSE" 
PRINT "-------------------—-----—— !! 
PRINT CHR$ (27); CHR$ (87); CHR$ (PP) 
PRINT "Algorithmus: Runge": PRINT 
PRINT CHR$ (15) 
PRINT "Anzahl der eingegebenen Stützstellen: ";M 
PRINT : PRINT "Grad des trigonometrischen Polynons: ";N 
PRINT "Koeffizienten: " 
PRINT "a(®)= ";A(®) 
PRINT : FOR I = 1 TON 
PRINT TAB(1®)"a(";I;")= ";A(I); CHR$ (27); CHR$ (98); 
CHR$ (48) ;"D(";1;")= ";B(T) 
PRINT 
NEXT I 
PRINT : PRINT "Fourier-Analyse'": PRINT : PRINT "(c) 
Peter Walber, Mai '84" 
PRINT CHR$ (27); CHR$ (59) 
PRINT D$; "PR#3'" 
REM CHR$(98) ;CHR$(49) setzt den nächsten Tabulator auf 
die 49. Spalte 
REM CHR$(5®) Zeilenvorschub auf 1/6 Inch 
RETURN 
REM 
REM x Synthese kai 
REM 
PRINT : PRINT "FOURIER.SYN wird geladen" 
PRINT D$; "RUN FOURIER.SYN" 
REM 
REM #3 kk%* Spektrum ki 
REM 
PRINT : PRINT "FOURIER.SPEC wird geladen" 
PRINT D$; "RUN FOURIER.SPEC" 


END 


REM 

REEM 3 ale aa ak ae ak ak ak ak ak ak aka a a 
REM 

PRINT CHR$ (12) 

PRINT "Abspeichern der Fourier-Koeffizienten" 
PRINT : INPUT "Filename:";DN$ 

PRINT : INPUT "Slot:";S 

PRINT : INPUT "Drive:";D 

PRINT D$; "OPEN" ;DN$ + "KOEFF";",S";,S;",D";D 
PRINT D$; "DELETE'";DN$ + "KOEFF" 

PRINT D$;"OPEN";DN$ + "KOEFF" 

PRINT D$; "WRITE";DN$ + "KOEFF" 

PRINT N: PRINT A(®) 

FOR I = 1 TO N + 3: PRINT A(I): PRINT B(I): NEXT I 
PRINT D$; '"CLOSE" 

RETURN 

REM 

REM 3a a ale ak ake ale ale aaa 
REM 

PRINT CHR$ (12) 

PRINT "Abspeichern der Funktionswerte" 

PRINT : INPUT "Filename:';DN$ 

PRINT : INPUT "S101:":5 

PRINT : INPUT "Drive:';D 

PRINT D$;"OPEN";DN$ + "WERTE" ;",S";S;",D";D 
PRINT D$; "DELETE";DN$ + "WERTE" 

PRINT D$;"OPEN";DN$ + "WERTE" 

PRINT D$:"WRITE";DN$ + "WERTE": PRINT NF: FOR I = ® TO 
2«NF+2 

PRINT Yl(I): NEXT I 

PRINT D$; "CLOSE" 

RETURN 

REM 

REN SB BB BB 
REM 

GOSUB 423 

PRINT CHR$ (12) 

PRINT "Einlesen der Funktionswerte' 

PRINT : INPUT "Filename: ";DN$ 

PRINT : INPUT "Slot:";S: PRINT : INPUT "Drive:";D 
PRINT D$; "OPEN" ;DN$;",S";S;'",D";D 

PRINT D$;"READ ";DN$ 

INPUT YZ$: PRINT :N = VAL (YZ$):P =N / 2:M 





PRINT 

FOR I = TO M - 1: INPUT YZ$: PRINT :Y(I) = VAL 
(YZ$): NEXT I 

PRINT D$; "CLOSE" 

RETURN 

REM 

REM 3er 
REM 

D$ = CHR$ (4): GOSUB 4239 

PRINT CHR$ (12) 

PRINT "Einlesen der Fourier-Koeffizienten" 

PRINT : INPUT "Filename:'";DN$ 

PRINT : INPUT "Slot:";S 

PRINT : INPUT "Drive'";D 

PRINT D$; "OPEN" ;DN$;",S";S;",D";D 

PRINT D$; "READ" ;DN$ 

INPUT N$: PRINT :N = VAL (N$): INPUT AB$: PRINT :A(®) 
= VAL (AB$) 

FOR I = 1 TO N: INPUT YZ$: PRINT :A(I) = VAL (YZ$): 
INPUT YZ$: PRINT :B(I) = VAL (YZ$): NEXT I 

PRINT D$; "CLOSE" 

RETURN 


PRIN 
STOP 


DEF FN F(I) = 10 *« EP ( - If 2) 

FOR I = ® TO 19: PRINT : NEXT I 

PRINT "Da die Fourier-Analyse nur periodische 
Funktionen auswertet, muß dem": PRINT : PRINT 
"Programm mitgeteilt werden, wo die Periodendauer T 
liegen soll." 

INPUT "Obere Grenze='";TMAX 

LET DT = TMAX / M:DT = INT (DT) 

FOR I = ® TO TMAX - DT 

Y(I)=FNF(I) 

NEXT I 

RETURN 

REM 

REM *%*%* Abbildung auf den 1. Quadranten 

REM 

FOR I=9 TON 

ZZ(I) Y(I) + Y(M - I):YY(I) = Y(I) - Y(M - I): NEXT I 
ZZ(P) = ZZ(P) / 2:YY{P) = YYIP) / 2 

Y(8) = 2 » Y(B):Y(M) = Y(B):Y(N) = 2 * Y(N) 

FOR I=B8TON/2 

SS(I) = ZZ(I) + ZZ(N - I):DS(I) = ZZ(I) - ZZ(N - I) 
SD(I) = YY(I) + YY(N - I):DD(I) = YY(I) - YY(N - TI): 
NEXT I 

RETURN 

REM 

REM *%*%* Hardcopy %*%*%* 

REM 

PRINT : INPUT "Plot vergrößert zur Ausgabe? (J/N)";VG$ 
IF VG$ = "J" THEN 467® 

PRINT D$;"PR#1": PRINT CHR$ (9) ;"G2": PRINT D$;"PR#3": 
RETURN 

PRINT D$;"PR#1": PRINT CHR$ (9) ;"G2RD": PRINT 
D$;"PR#3'": RETURN 

REM **%* Bildrahmen x%*%* 

BASADR = 16497 

FOR J=1T08 

FOR I7=9T07 

READ AL% 

POKE BASADR + 1924 * I7,AL% 

NEXT I7 

BASADR BASADR + 1 

NEXT J 

BASADR 16836 

FOR I7=9T1T07 

READ AL% 

POKE BASADR + 1924 * I7,AL% 

NEXT I7 

RESTORE 

BASADR = 16384 

FOR I7”=9T0 7 

READ AL% 

POKE BASADR + 1924 * I7,AL% 

NEXT I7 

RESTORE 

HPLOT 169,9 TO 224,9 

RETURN 

DATA 9,62,2,2,30,2,2,2: REM F 

DATA 0,34,34,34,34,34,34,28: REM U 

DATA 9,34,34,38,42,50,34,34: REM N 

DATA ® 
DATA 9, 
DATA 9, ‚8,8,28: REM I 
DATA ® ‚34,34,34,28: REM O0 
DATA 9 ‚42,50,34,34: REM N 
DATA ® 0,8,20,34: REM x 





Peeker 6/85 








Applesoft- 





Mit Hilfe des Assembler-Programms 
AS.ERWEITERUNG werden insgesamt 18 
neue Befehle in Applesoft implementiert, 
die von jedem Basic-Programm aus aufge- 
rufen werden können. 

Nach dem Eingeben des Assembler-Pro- 
gramms speichern Sie dieses bitte unter 
dem Namen AS.ERWEITERUNG mit 
„BSAVE AS.ERWEITERUNG, A$9378, 
1L$288“ auf Diskette ab. Das Programm 
kann dann von Applesoft aus mit einem 
BRUN jederzeit wieder eingeladen werden 
und liegt nach dem Einladen unter den 
DOS-Puffern, d.h. von Adresse $95FF ab- 
wärts. Es schützt sich nach dem Starten 
(durch BRUN oder CALL 38399) selbst 
vor Überschreiben durch Stringvariablen 
und initialisiert dann den &-Vektor, der von 
Applesoft aus aufgerufen wird, sobald der 
Interpreter auf das „&“-Zeichen trifft. Die- 
ser Vektor steht in den Speicherzellen 
$03F5 bis $03F7. In diesen Bereich wird 
ein Sprungbefehl zu dem Programm ge- 
schrieben, welches die Befehle nach dem 
„&“ verarbeitet. 


Die Erläuterung der einzelnen 
Befehle 


& GOTO stellt dem Benutzer die Möglich- 
keit zur Verfügung, ein berechnetes GO- 
TO durchzuführen. Als Zeilennummer darf 
hierfür jeder beliebige numerische Aus- 
druck eingesetzt werden. Beispiele 
hierzu: 

& GOTO 10*xA +25 

& GOTO A(X) *# 10 + 50. 


& GOSUB bildet einen berechneten 


Sprung in ein Unterprogramm. Der Gel- 
tungsbereich für den numerischen Aus- 


Peeker 6/85 


Erweiterungen 





4 Applesoft 94 


von Markus Enzinger 


Eine Sammlung von Ampersand-Routinen 


druck ist identisch mit dem des Befehls 
„& GOTO*, 


& RESTORE hat im Prinzip die gleiche 
Wirkung wie der Applesoft-Befehl „RE- 
STORE“ mit dem Unterschied, daß der 
DATA-Zeiger, der auf die momentan zu 
lesende Information gerichtet ist, nicht auf 
das erste vorhandene DATA-Statement 
zurückgesetzt wird, sondern auf jede be- 
liebige DATA-Zeile gerichtet werden kann. 
Der numerische Ausdruck für die Zeilen- 
nummer muß den gleichen Bedingungen 
entsprechen wie der von „& GOTO“, 


& HGR bewirkt, daß die erste Seite für 
hoch aufgelöste Grafik sichtbar wird, ohne 
diese dabei zu löschen. Genauso wie bei 
dem „HGR“-Befehl in Applesoft werden 
auch hier die untersten vier Zeilen für 
Textausgabe reserviert. Dieser Befehl er- 
spart das ansonsten notwendige „Herum- 
poken“ in den Adressen für die Bildschirm- 
ausgabe. „& HGR“ entspricht den folgen- 
den Basic-Zeilen: 

POKE -16304,0 

POKE -16301,0 

POKE -16300,0 

POKE -16297,0 

POKE 230,32, 

Außerdem wird in der Zero-Page ein Flag 
gesetzt, welches bewirkt, daß alle nachfol- 
genden Grafikkommandos wie HPLOT 
usw. auf der ersten Grafikseite ausgeführt 
werden. 


& HGR2 bewirkt dasselbe wie „& HGR“, 
bezogen auf die zweite Seite für hoch 
aufgelöste Grafik. Allerdings wird hier, wie 
auch beim Applesoft-Befehl „HGR2“, kein 
Platz für Textausgaben reserviert. 


& GR schaltet die Bildschirmausgabe auf 
die erste Seite für niedrig aufgelöste Grafik 
um, ähnlich wie der Befehl „GR“ in Ap- 
plesoft, jedoch ebenfalls ohne diese zu 
löschen. Die unteren vier Zeilen sind für 
Textausgaben reserviert. 


& INVERSE bewirkt ein Invertieren des 
Textbildschirmes. Invertieren bedeutet, 
daß die Hinter- und Vordergrundfarbe je- 
des einzelnen Zeichens gegeneinander 
vertauscht werden. Ein zweimaliges An- 
wenden dieses Befehls stellt wieder den 
Ursprungszustand des Textbildschirmes 
her. (Dieser Befehl sollte bei der Benut- 
zung eines Peripheriegeräts nicht ange- 
sprochen werden, da der gesamte Bereich 
von $0400 bis $07FF invertiert wird und 
somit auch die von den Slots benutzten 
„Screenholes“ ihren Wert ändern. Dies 
führt z.B. zu einer Neukalibrierung des 
Schreib/Lesekopfs bei einem angeschlos- 
senen Diskettenlaufwerk. Anm. der Red.) 


& INVERSE-H invertiert die zuletzt ange- 
sprochene Seite für hoch aufgelöste Gra- 
fik. Man sollte darauf achten, daß vor der 
Verwendung dieses Befehls schon eine 
der beiden Grafikseiten angesprochen 
wurde (durch „HGR“, „HGR2“, „& HGR“ 
oder „& HGR2“). Der Grund dafür liegt in 
der Tatsache, daß in der Zero-Page ein 
Flag existiert, welches dem Interpreter 
sagt, auf welcher Grafikseite momentan 
gearbeitet wird. Ist noch keine Grafikseite 
angesprochen worden, so enthält dieses 
Flag einen Zufallswert und es könnte pas- 
sieren, daß irgendwo im RAM Speicher- 
zellen invertiert und dadurch Daten zer- 
stört werden oder gar das System ab- 
stürzt. 


43 


nn 





& FLASH bewirkt ein Aufblitzen des Text- 


bzw. Lores-Grafik-Bildschirmes. Dieser 
Befehl ist besonders bei Spielen gut an- 
wendbar, wenn sog. „Crashs“ dargestellt 
werden sollen. Programmtechnisch wurde 
dieser Befehl realisiert, indem einfach die 
Invertierungsroutine zweimal hintereinan- 
der aufgerufen wird. 


& SOUND h,d gibt über den internen 
Lautsprecher des Apple Il den Ton h mit 
der Dauer d aus. Der Parameter h stellt 
also die Tonhöhe dar, d die Tondauer. H = 
1 ergibt den tiefstmöglichen, h = 255 den 
höchstmöglichen Ton. D = 1 bewirkt einen 
sehr kurzen, d = 255 dagegen einen lan- 
gen Ton. Für h und d sind sowohl Zahlen 
als auch Variablen einsetzbar. Beispiele 
hierfür: 

SOUND 25,200 

SOUND NH,ND + 100. 


& SCROLL-R schiebt den gesamten Bild- 
schirminhalt der Textseite um eine Spalte 
nach rechts. Mit Hilfe des SCROLL-Be- 
fehls ließe sich z.B. ein Programm zur 
Erzeugung von Laufschriften o.ä. recht 
einfach erstellen. 


& SCROLL-L schiebt den Bildschirminhalt 
um eine Spalte nach links. 


& SCROLL-U schiebt den Bildschirmin- 
halt um eine Zeile nach oben. 


& SCROLL-D schiebt den Bildschirmin- 
halt um eine Zeile nach unten. 


& SCROLL-GR schiebt den Bildschirmin- 
halt der niedrig aufgelösten Grafik um eine 
Spalte nach rechts. 


& SCROLL-GL schiebt den Bildschirmin- 
halt der niedrig aufgelösten Grafik um eine 
Spalte nach links. 


& SCROLL-GU schiebt den Bildschirmin- 
halt der niedrig aufgelösten Grafik um eine 
Zeile nach oben. 


& SCROLL-GD schiebt den Bildschirmin- 
halt der niedrig aufgelösten Grafik um eine 
Zeile nach unten. 


Die Grafik-SCROLL-Befehle eignen sich 
in erster Linie zur Erstellung von Spielpro- 
grammen in Basic, wie z.B. Scramble oder 
Autorennen, die eine schnelle Bewegung 
der Hintergrundlandschaft verlangen. Die 
Text-SCROLL-Befehle sowie der IN- 
VERSE- und FLASH-Befehl arbeiten nur 
bei der 40 Z/Z-Ausgabe. 


44 


BGE 


AS.ERWEITERUNG 


9378: 
937A: 
937D: 
937F: 
9381: 
9383: 
9385: 
9387: 
9Y3Z8A: 
938C: 
938F: 


9399: 
9392: 
9394: 
9397: 
9399: 
939B: 
939E: 
93AB: 
93A2: 
93A5: 
93A7: 
9349: 
93AB: 


93 
F7 
79 
74 
9% 


73 
F6 
ac 
F5 


03 


03 
D3 


95 


95 


95 


aaa 
18 neue Applesoft-Befehle 


von 
MARKUS ENZINGER 


a 
*%kk x x * x 


EZ nn 2 2 
* 

ORG $9378 ; Programm-Startadresse 
— Label-Definition ————— — 


* Zuordnung der Tokens, d.h. der Zahlen, die der Inter- 
* preter für die jeweiligen Befehle verwendet 

* 

FLASH EQU 159 
INVERSE® EQU 158 
GOSUB® EQU 176 
GOTO® EQU 171 
RESTORE® EQU 174 
GR® EQU 136 
HGR® EQU 145 
HGR2® EQU 144 
* 

* Zero-Page-Adressen ———— 

%* 

WNDWDTH EQU $21 

WNDTOP EQU $22 

WNDBTM EQU $23 

BASL EQU $28 

BASZL EQU $2A 

LINNUM EQU $59 

FRETOP EQU $6F 

MEMSIZE EQU $73 

CURLIN EQU $75 

DATPNT EQU $7D 

LOWTR EQU $9B 

TXTPTR EQU $B8 

HPAG EQU $E6 

* 

* Verschiedene System-Adressen -————— 
* 


; Token von FLASH 

; Token von INVERSE 
; Token von GOSUB 

; Token von GOTO 

;‚ Token von RESTORE 
; Token von GR 

; Token von HGR 

;‚ Token von HGR2 


CHRGET EQU $opBl ; Zeichen holen 

SPKR EQU $C939 ; Adresse des Lautsprechers 
FNDLIN EQU $D61A ;‚ Zeile suchen 

NEWSTT EQU $D7D2 ‚ neuen Befehl ausführen 
FRMNUM EQU $DD67 ; Ausdruck berechnen 

ERROR EQU $DECY ‚ Ausgabe 'Syntax Error' 

GETADR EQU $E752 ; FAC1 —> Integer (in $59,$51) 
ILLQUA EQU $E199 ; Ausgabe 'Illegal Quant. Error' 
GETNUM EQU $E746 ; Hole 2 Parameter aus Basic 
VTABZ EQU $FC24 

SCROLLB EQU $FC7® 

WAIT EQU $FCA8 ; Warte-Schleife 


%* 
* Initialisieren des &-Vektors 
* 
LDA #>START 
STA $P3F7 
STA FRETOP+1 
STA MEMSIZE+1 
LDA #<START 
STA FRETOP 
STA MEMSIZE 
STA $03F6 
LDA #$4C 
STA $93F5 
RTS 


; High-Byte 


; Low-Byte 


; Sprungbefehl 


* 

* War der Befehl ein 

* 

START CMP #GR® 
BNE NEXTCOM 
JMP GR 

NEXTCOM CMP #HGR® 
BNE NEXTCOMl 
JMP HGR 

NEXTCOMl CMP #HGR29 
BNE NEXTCOM2 
JMP HGR2 

NEXTCOM2 CMP #GOTO® 
BEQ GOTO 
CMP #GOSUB® 
BEQ GOSUB 


'GR'? 
; Mit GR-Token vergleichen 


; GR-Routine aufrufen 


Peeker 6/85 





93AD: 
9ZAF: 
93Bl: 
93B3: 
93B5: 
93B7: 
93B9: 


93BC: 
93BE: 
95C1: 
9303: 


9304: 
93C6: 
9308: 
95CB: 
95CE: 
9501: 
93D4: 
93D6: 
93D9: 
93DA: 
93DC: 
93DE: 
93E1: 
93E4: 


93E7: 
93EA: 
93ED: 
93Fß: 


93F3: 
93F5: 
93F8: 
95FA: 
93FB: 
93FD: 
93FE: 
9409: 
9491: 
9403: 
9404: 
9406: 
9497: 
9ABA: 


940D: 
9419: 
9413: 
9416: 
9419: 
94AlB: 
941D: 
9AlF: 
9429: 
9422: 
9424: 
9426: 
9428: 
9429: 
9A2B: 


garc: 
9ARF: 
9431: 
9433: 
9436: 
9439: 
943B: 
943D: 
94ASF: 
9441: 
9443: 
9446: 


Peeker 6/85 


Ad 
D9 
D® 
c8 


20 


29 
ac 


29 
20 
29 
29 
A5 
85 


38 
EI 
85 
c9 
FO 
60 


60 


AE 
SC 
9E 
77 
9F 


8B 


nf") 
F5 
DE 


d6 
03 
94 
Bl 
BE 


03 
c9 


05 
03 
97 


Bl 
D1l 


Bl 
67 
52 
4l 


03 
B9 
B8 
76 
75 
BO 


E7 
D2 


Bl 
67 
52 


9C 
TE 
9B 


01 
TD 


Öl 


TE 


94 


95 


95 


93 


9 
DD 
E7 
D9 


D3 


93 


vl) 
DD 
E7 
D6 


11) 


99 
99 


F4 


11® 
111 
112 
113 
114 
115 
116 
117 
118 
119 
129 
121 
122 
123 
124 
125 
126 
127 
128 
129 
13 
131 
132 
135 
134 
135 
136 
137 
138 
139 
149 
141 
142 
143 
144 
145 
146 
147 
148 
149 
159 
151 
152 
153 
154 
155 
156 
157 
158 
159 
169 
161 
162 
163 
164 
165 
166 
167 
168 
169 
179 
i71 
172 
173 
174 


CMP 
BEQ 
CMP 
BEQ 
CMP 
BNE 
JMP 


«u War B 


NEXTCOM3 LDY 
NEXTCHAR CMP 
BNE 
INY 
. 
* —— Alle 6 
” 
CPY 
BNE 
JMP 
NEXT JSR 
JMP 
SOUND? CMP 
BEQ 
JMP 
NEXTC INY 
CPY 
BNE 
JMP 
NEXTC1 JSR 
JMP 


GOTO JSR 
JSR 
JSR 
JMP 


GOSUB LDA 
JSR 
LDA 
PHA 
LDA 
PHA 
LDA 
PHA 
LDA 
PHA 
LDA 
PHA 
JSR 
JMP 


RESTORE JSR 
JSR 
JSR 
JSR 
LDA 
STA 
LDA 
SEC 
SBC 
STA 
CMP 
BEQ 
RTS 
OVFLW DEC 
RTS 


INVERSE JSR 
CMP 
BNE 
JSR 
JSR 
LDA 
STA 
NXTLINE LDX 
LDY 
LDA 
JSR 
LDY 


#+RESTORE® 
RESTORE 
#INVERSE® 
INVERSE 
#FLASH® 
NEXTCOM3 
FLASH 


efehl ein 'Scroll'? ——-- 


#509 
SCROLL1,Y 
SOUND? ; Befehl <> 'Scroll' 


Buchstaben verglichen? —— 


+$06 

NEXT 

SCROLL ; Routine aufrufen 
CHRGET 

NEXTCHAR 

SOUND1,Y 

NEXTC 

ERROR ;‚ '"Syntax Error' 


+$05 ;‚ verglichen? 
NEXTC1 
SOUND 
CHRGET 
SOUND? 


- GOTO(X)-Routine -—-—-—- 


CHRGET 

FRMNUM ‚ Ausdruck berechnen 
GETADR ;‚ und in Integer umwandeln 
$D941 ; GOTO-Routine ansprechen 


- GOSUB(X)-Routine ——— 


#503 
$D3D6 ; Stack prüfen 
TXTPTR+1 ; CHRGET-Zeiger retten 


TXTPTR 

CURLIN+1 ; Zeilennr. retten 
CURLIN 

+$BQ 


GOTO 
NEWSTT ; Befehl ausführen 


RESTORE(X)-Routine —-— 


CHRGET 

FRMNUM 

GETADR 

FNDLIN ; Zeile suchen 

LOWTR+1 ; Adr. der Zeile 
DATPNT+1 ;‚ in Data-Zeiger ablegen 
LOWTR 


#501 
DATPNT 
#+$FF 
OVFLW 


DATPNT+1 


Invertierungs-Routine —- 


CHRGET 

#+$C9 ‚ Inverse-H? 
INVTXT 

CHRGET 

CHRGET 

+$09 

$01 

#509 

+$09 

$01 ; Berechnung der 
$FAll ; Adresse und Maske des 
#+#$09 ; Punktes 


Applesoft 4 


ProDOS-Editor 1.0 


Applesoft-Editor 
unter ProDOS-Betriebssystem 


von U. Stiehl 


1984, Diskette und Manual, DM 98,— 
ISBN 3-7785-1024-X 


Mit diesem neuen Editor — übrigens 
der bislang einzige deutsche Pro- 
DOS-Editor — wird dem Applesoft- 
Programmierer ein Werkzeug zur ef- 
fektiven Programmierung unter dem 
Betriebssystem ProDOS gegeben, 
denn die früheren Editoren sind alle- 
samt unter ProDOS nicht mehr lauf- 
fähig. 


Unter anderem sind folgende Fea- 
tures implementiert worden: 


Zeilenorientierter Editor mit jedem er- 
denklichen Redigierkomfort (Insert, 
Delete, Tab, Restore, freie Cursorbe- 
wegung in allen vier Richtungen, Einga- 
be von Ctrl-Buchstaben in Applesoft- 
Zeilen usw.) 


Renumber (Zeilen-Umnumerierung) 


Xreference (sortierte Variablenliste) 
Suchen von Tokens, Strings und Varia- 
blen 

dezimale und hexadezimale Umrech- 
nungen 

Ausführung von Monitorbefehlen aus 
dem Editor heraus 

Listen des Applesoft-Programms in 
speicherinterner Form als Hex-Dump 


Suchen von Hex-Folgen, Adressen 
oder Speicherstellen im gesamten 
RAM-Bereich einschließlich der 
Language-Card 


frei definierbare Tastatur-Macrobefehle 


Der Applesoft-Editor liegt in einem 
von ProDOS geschützten Bereich 
und läßt sich per Tastendruck vor- 
übergehend abschalten und ebenso 
einfach wieder aktivieren. 


Gerätevoraussetzung: Apple Il+, Ile 
oder IIc 


Hüthig Software Service, 
Postfach 10 28 69, 
D-6900 Heidelberg 





45 


a nn 





9448: 
YAAA: 
944C: 
94A4E: 
944AF: 
9451: 
9453: 
9455: 
9457: 
9459: 
945B: 


945C: 
945E: 
9469: 
9462: 
9464: 
9466: 
9468: 
9A6A: 
946C: 
946E: 
9479: 
9471: 
9473: 
9475: 
9476: 
9478: 
9479: 
9A7TB: 
9A7TD: 
9ATF: 
9482: 
9484: 
9486: 
9488: 


948B: 
948E: 
9491: 


9494: 
9496: 
9498: 
94A9B: 
949E: 
94AAß: 
94A2: 
9445: 
94AAT: 
9449: 
9AAC: 
9AAE: 
94BB: 
94B2: 
94B4: 
94B6: 
94B8: 
94BB: 
94BD: 
9YABF: 
9aCc2: 


94C5: 
9407: 
94C9: 
94ACB: 
9ACE: 
94D9: 
94D!: 
94D2: 
94D4A: 
94D5: 
94D7: 
94D8: 
9ADA: 
94ADC: 
94DE: 


46 


ze re EEE EEEEEEEEETEEEEEEEEEEEEETEEEEEEETEEEEEREEEEEEEEEEEEEEEEREEEEEEEEEEEREEEEEEEEEEREEEEEEREEEEREREREEEREEEE 


Bl 
49 
91 
c8 
0) 


E6 
AS 


D® 
69 


20 
20 
ac 


26 
7F 
26 


28 
F5 
01 
01 


E2 


Bl 
Ssc 
sc 


28 
28 


F7 
FF 
28 
#1 


94 


94 


99 


94 


1) 
1) 


95 


95 


95 


95 
DE 


FC 


175 
176 
177 
178 
179 
189 
181 
182 
183 
184 
185 
186 
187 
188 
189 
199 
191 
192 
193 
194 
195 
196 
197 
198 
199 
209 
201 
202 
203 
204 
205 
206 
297 
208 
209 
219 
11 
212 
213 
214 
215 
216 
217 
218 
219 
229 
221 
222 
223 
224 
225 
226 
227 
228 
229 
230 
231 
232 
233 
234 
235 
236 
237 
238 
239 
240 
241 
242 
243 
244 
245 
246 
247 
248 
249 
250 
251 
252 
253 
254 
255 
256 
257 
258 
259 
260 
261 
262 


NXTBYTE 


* 
INVTXT 


LOOP9Y 


LOOP8 


LOOP13 
LOOP11 


LOOP19 


LOOP2® 


LDA 
EOR 
STA 
INY 
CPY 
BNE 
INC 
LDA 
CMP 
BNE 
RTS 


LDX 
STX 
LDA 
STA 
LDY 
LDA 
CMP 
BCC 
EOR 
STA 
DEY 
BNE 
INC 
DEX 
BNE 
RTS 
CMP 
BCC 
EOR 
JMP 
CMP 
BCC 
EOR 
JMP 


JSR 
JSR 
JMP 


($26) ,Y 
#+#57F ; invertieren 
($26) ,Y 


+$28 ; 1 Zeile fertig? 
NXTBYTE 

$01 ‚ nächste Zeile 

$01 

#$C9 ‚ alle Zeilen fertig? 
NXTLINE 


#504 ‚ Zeiger auf Text- 

$02 ; seite initialisieren 
+$09 

$01 

+$09 

($1),Y 

+$C9 

LOOP1® 

#509 

($1),Y 


LOOP8 
$92 


LOOP9 


#+$AQ 
LOOP29 
+$89 
LOOPI1 
+$20 
LOOP13 
+$80 
LOOP11 


CHRGET 
INVTXT 
INVTXT 


; FLASHen durch 
; 2 x invertieren 


. Scroll-Routine ——— 


SCROLL 


NIXGR 


NOGRAFIK 


LOOP31 


FEHLER 
* 


LDA 
STA 
JSR 
JSR 
CMP 
BNE 
JMP 
CMP 
BNE 
JMP 
CMP 
BEQ 
CMP 
BEQ 
CMP 
BNE 
JMP 
CMP 
BNE 
JMP 
JMP 


+$AQ 

$FF 
CHRGET 
CHRGET 
#136 ;‚ Scroll-GR? 
NIXGR 
SCRGR 
#'"G ‚ Grafik-Scroll? 
NOGRAFIK 
SCROLLG 
#'"R 
RECHTS 
#'L 
LINKS 
+#'U 
LOOP31 
UP 

#'D 
FEHLER 
DOWN 
ERROR 


#* —— Rechts-Scrollen -———— 
* Umgeschriebene Upscroll- 
* Routine vom Autostart-Monitor 


. 
RECHTS 


LOOP17 


LOOP16 


LDA 
BPL 
STA 
JSR 
LDY 
DEY 
DEY 
LDA 
INY 
STA 
DEY 
BNE 
LDA 
STA 
LDA 


WNDBTM 
LOOP15 
d 

VTABZ 
WNDWDTH 


(BASL),Y 
(BASL),Y 
LOOP16 
$FF 


(BASL),Y 
$01 





DB-MEISTER 


Adreß- und Schemabriefprogramm 


Der DB-Meister ist ein in Assembler ge- 
schriebenes, ungewöhnlich schnelles, un- 
kompliziertes und zugleich „narrensicheres“ 
AdreßB-, Datei- und Schemabriefprogramm. 
Technische Daten 


— Recordlänge bis zu 230 Zeichen 
560 bis 1000 Records pro Datendiskette 
Maximal 25 Felder pro Record 
Suche nach 3 Indexfeldern 
Ausdruck der Dateien als Etiketten, Listen 
und Schemabriefe (mit Felder- und Tasta- 
tureinschüben an beliebigen Stellen des 
Formbriefes) 
normal kopierbare Programmdiskette, un- 
terteilt in Hauptprogramme und diverse 
Hilfsprogramme 
einsatzfähig auf Apple Ile, IIc oder Il Plus 
mit 2 Drives (1 Drive ebenfalls möglich) 


Gesamtpreis 290, (2 Disketten + ge- 
drucktes Manual) 

U. Stiehl 

c/o Dr. A. Hüthig Verlag 

Postfach 10 28 69 - 6900 Heidelberg 


AS.ERWEITERUNG und ProDOS 


Damit die AS.ERWEITERUNG auch unter 
ProDOS läuft, wurde das Assemblerpro- 
gramm mit ORG $9778 (statt $9378) neu 
assembliert, nachdem die HIMEM-Pokes 
(MEMSIZ) zu Beginn des Programms 
durch die entsprechende Anzahl von 
NOPs ersetzt wurden. Diese Neuversion 
findet sich unter dem Namen „AS.ERW- 
.PRO“ auf der Peeker-Sammeldisk #6 
und ist — wenn man von der Verschiebung 
um $0400 nach oben absieht — mit der 
DOS-Version identisch. Ferner war ein 
kurzes Applesoft-Start-Programm namens 
„AS.ERW.PROSTART“ erforderlich, das 
HIMEM über die sog. GETBUFFER-Routi- 
ne ändert. Kopieren Sie also AS.ERW- 
‚PRO und AS.ERW.PROSTART von der 
DOS-Sammeldisk auf Ihre ProDOS-Disk 
(mit Hilfe der CONVERT-Utility) und star- 
ten Sie dann die Ampersand-Routinen mit 
RUN AS.ERW.PRO 

Die Speicherverteilung sieht dann unter 
ProDOS wie folgt aus: 

$9300: HIMEM 

$9300-$96FF: ProDOS-Puffer 
$9778-$99FF: AS.ERW.PRO 

$9A00: Beginn von BASIC.SYSTEM 

Wie man unter ProDOS Assemblerpro- 
gramme oberhalb von HIMEM ansiedelt, 
wird in einem späteren Peeker-Artikel ge- 
zeigt. U. Stiehl 


Peeker 6/85 


LOOP15 SEC 
SBC #$91 
SEC 
CMP WNDTOP 
BPL LOOPI17 
JMP CHRGET 


——— Links-Scrollen 
Umgeschriebene Upscroll-Routine 
vom Autostart-Monitor 


LINKS DEC WNDWDTH 
LDA WNDBTM 
BPL LOOP21 
LOoOP22 STA 1 
JSR VTABZ 
LDY #$99 
LOOP23 INY 
LDA (BASL),Y 
DEY 
STA (BASL),Y 
INY 
CPY WNDWDTH 
BNE LOOP23 
LDA $FF 
STA (BASL),Y 
LDA $p1 
LOOP21 SEC 
SBC #$p1 
SEC 
CMP WNDTOP 
BPL LOOP22 
JSR CHRGET 
INC WNDWDTH 
RTS 


Down-Scroll 
Umgeschriebene Upscroll-Routine 


* vom Autostart-Monitor 
* 
DOWN LDX WNDBTM 
DEX 
TXA 
PHA 
JSR VTABZ 
LOOP4® LDA BASL 
STA BAS2L 
LDA BASL+1 
STA BAS2L+1 
LDY WNDWDTH 
DEY 
PLA 
SEC 
SBC #$P1 
SEC 
CMP WNDTOP 
BMI LOOP4l 
PHA 
JSR VTABZ 
LOOP42 LDA (BASL),Y 
STA (BAS2L),Y 
DEY 
BPL LOOP42 
BMI LOOP4® 
LOOP41 LDY WNDWDTH 
DEY 
LDA $FF 
LOOP45 STA (BASL),Y 
DEY 
BPL LOOP45 
JMP CHRGET 
* 
* ————- Up-Scroll 
%* 
UP JSR SCROLL® 
JMP CHRGET 


; Upscroll 


* 

* —— Low-Grafik-Scroll --—— 

* 

SCROLLG LDA +#$99 
STA $FF 
STA WNDTOP 
STA WNDBTM 
PHA 
LDA #29 
STA WNDBTM 
JSR CHRGET 
CMP #'U 


Peeker 6/85 


95F5: 53 
95F8: 4AF 
95FB: 53 
95FE: 4E 


648 Bytes 








Applesoft 4.4 


351 
352 
353 
354 
355 
356 
357 
358 
359 
360 
361 
362 
363 
364 
365 
366 
367 


379 


WDWRESTO 


SCRGR 


OK 


REPEAT 
REP1 


* 


* Ablegen von 
'Sound' als 


* 
* 
%* 


LDA 
LDA 
LDA 
LDA 
STA 
JMP 


UPSCR 
NOGRAFIK 
+20 
WNDTOP 


WNDBTM 


#509 
WNDTOP 
$FF 
WNDBTM 


+29 
WNDBTM 
RECHTS 
WDWRESTO 
SCROLL® 
CHRGET 
+$27 
+$09 
$05DP,Y 


INC 
WDWRESTO 


CHRGET 

GETNUM ; Lese Parameter 
LINNUM+1 

OK 

ILLQUA 

$01 

$01 

LINNUM 

+504 

WAIT ; Wait-Routine 
SPKR ; Lautsprecher 


DELAY 


REP1l 


$01 
REPEAT 


$c959 
$c953 
50954 
$c056 
CHRGET 
$FB49 


$c959 
$c053 
$c954 
$0057 
+$29 
HPAG 
CHRGET 


$c959 
$c052 
$c955 
$0057 
+$49 
HPAG 
CHRGET 


'Scroll' und 
ASCII-Code zum 


späteren Vergleich 


SCROLL1 ASC 


SOUND1 ASC 





'SCROLL' 


'SOUND' 


47 








RAM-Disk-Driver für 





3 ascal 1 ® 1 von Michael Schröter 


1. Theorie 


Eine ausgesprochen nützliche Erweite- 
rung für den Apple Ile ist die erweiterte 80- 
Zeichenkarte. Eine der vielen neuen Mög- 
lichkeiten, den zusätzlichen Speicher aus- 
zunutzen, besteht in der Simulation einer 
Diskette. Dies ist natürlich vom verwende- 
ten Betriebssystem abhängig. Nachdem 
eine solche Simulation für DOS 3.3 bereits 
veröffentlicht wurde (vgl. (1) sowie Peeker 
1/2, 85 und 4/85), soll hier ein entspre- 
chendes Konzept für PASCAL 1.1 vorge- 
stellt werden. Zunächst einige Vorbemer- 
Kungen: 


Im Gegensatz zu DOS 3.3 werden Peri- 
pheriegeräte (Devices oder Volumes) in 
Pascal nicht über Slot und Drive selektiert, 
sondern über ihre entsprechende Uhnit- 
nummer angesprochen (vgl. (2), S. 26, 
276-277). Die Verwaltung übernimmt der 
Interpreter, die eigentliche Ausführung 
das BIOS (Basic Input Output System). 
Schnittstelle zwischen dem p-code (also 
dem compilierten Pascal-Programm) und 
dem BIOS sind die Unit-Prozeduren des 
Interpreters. Da (3) nicht alle verfügbaren 
Prozeduren beschreibt, seien sie hier 
noch einmal kurz genannt: 


UNITBUSY (unitno), UNITWAIT (unitno), 
UNITCLEAR (unitno), UNITSTATUS (unit- 
no, array, mode); 

UNITREAD (unitno, array, length, block, 
mode); 

UNITWRITE (unitno, array, length, block, 
mode). 


Bei genauerer Untersuchung stellt man 
fest, daß selbst „höhere“ Prozeduren wie 
BLOCKREAD und sogar GET, PUT, SEEK, 
WRITE usw. ausschließlich über diese 
Unit-Prozeduren mit dem BIOS verkeh- 
ren. Weiterhin sind nur die 4 letztgenann- 
ten Prozeduren unitspezifisch, denn nur 
sie werten die Unit-Number auch tatsäch- 
lich aus, um die entsprechenden BIOS- 
Routinen anzusteuern. Den eigentlichen 
Aufruf übernimmt dann die Schnittstelle 
zwischen Interpreter und BIOS. 


48 


Hier werden die einzelnen Devices in ver- 
schiedenen Tabellen verwaltet. Die erste 
Tabelle ($FE80..$FEAF) enthält die „be- 
nutzer-definierbaren Sprungvektoren”. 
Der Anwender kann bis zu 16 eigene De- 
vices verwalten lassen, die dann den Unit- 
nummern 128..143 zugeordnet sind (übri- 
gens eine Möglichkeit, über die sich die 
Apple-Handbücher ebenfalls ausschwei- 
gen). Da das Laufzeitsystem hiervon kei- 
nen Gebrauch macht, soll darauf auch 
nicht näher eingegangen werden. 


Die systemspezifischen Geräte (also die 
Units 1..12) werden in einer eigenen Ta- 
belle ($FEBO..$FEC7) verwaltet. Für jedes 
Device sind dabei 2 Bytes vorgesehen, 
wobei bei einem Aufruf folgende Zuord- 
nung erfolgt: Ist das High-Byte (also 
$FEB1 für Device 1, $FEB3 für Device 2 
usw.) der Tabelle = $00, so wird die BIOS- 
Routine zur Disk-Verwaltung gerufen. Ist 
das High-Byte hingegen = $FF, so liegt 
ein Non-blocked-Device vor (also etwa 
CONSOLE oder PRINTER), und eine dritte 
Tabelle ($EEAD..$EECC) steuert den 
BIOS-Aufruf. Alle anderen vorgefundenen 
Werte werden als eine „indexed indirect 
address“ behandelt, d.h. als Anfangs- 
adresse-1 der Handler-Routine. Genau 
hier hakt auch das folgende Programm ein. 
Noch ein Wort zur Übergabe der Parame- 
ter: Wird der Interpreter für eine Disketten- 
operation verlassen, so findet das BIOS 
die Parameter in folgender Ordnung auf 
dem Systemstack (je 2 Bytes mit dem 
Low-Byte an oberster Stelle): 


Top of Stack: 

Blocknummer 

Anzahl der zu übertragenen Bytes 
Adresse des Arrays 

Unitnummer 

Modeparameter 


Bei Diskettenoperationen ist der Modepa- 
rameter immer = $00. Das gleiche gilt für 
das High-Byte der Unitnummer. 


2. Praxis 


Da der 6502 lediglich in der Lage ist, 64K 
zu adressieren, muß man beim Verwalten 
der zusätzlichen 64K auf die Softswitches 
bzw. die Firmware-Routinen AUXMOVE 
und XFER zurückgreifen (vgl. (4), S. 71). 
Diese beiden Prozeduren übernehmen 
auch die Hauptarbeit im Programm. Aller- 
dings ist man mit ihnen nur in der Lage, 
den Speicherbereich von $0200 bis 
$BFFF zu manipulieren. (Anm. d. Red.: 
Die gleiche Einschränkung gilt auch für 
das in (1) gelistete Programm. Deshalb 
soll zu einem späteren Zeitpunkt im 
Peeker ein Pascal-RAM-Disk-Driver veröf- 
fentlicht werden, der wie die Peeker-RAM- 
Disk-Programme für CP/M und DOS 3.3 
die 64K voll ausnutzt. Dann muß man al- 
lerdngs auf AUXMOVE teilweise ver- 
zichten.) 

In dem Bereich $0200-$BFFF wird die 
RAM-Disk angelegt. Bekanntlich organi- 
siert Pascal seine Disketten im Blockfor- 
mat (1 Block = 512 Bytes). Ein File wird 
dann in zusammenhängenden, hinterein- 
anderliegenden Blöcken gespeichert. Bei 
einer neu initialisierten Diskette werden 
die eigentlichen Files erst ab Block 6 ge- 
speichert, weil die Blöcke O und 1 für das 
Boot-Programm reserviert sind und die 
Blöcke 2, 3, 4 und 5 das Directory der 
Diskette enthalten. Die RAM-Disk beginnt 
mit Block 2, da die Boot-Blöcke bei einer 
RAM-Disk keinen Sinn ergeben. Zu be- 
achten ist nun ferner, daß der Bereich 
$0400..$07FF für die 80-Zeichendarstel- 
lung benutzt wird. Somit beginnt Block 2 
bei $0800 und erstreckt sich bis ein- 
schließlich $O9FF (was genau 512 Bytes 
ausmacht). Es kommt nun nur darauf an, 
die Blocknummer in die entsprechende 
Anfangsadresse des Hilfsspeichers zu 
transformieren. Das besorgt folgende Um- 
rechnung: 


Adresse (high):= Blocknummer #2 +4 
Adresse (low ):= 0 


Die maximale Adresse für einen Block ist 
$BEO0O. Mit $BE = 190 hat man also als 


Peeker 6/85 


ae r 





höchste Blocknummer: (190-4) / 2 = 93 
— ein Gewinn von 91 zusätzlichen Blöcken 
— dies sind immerhin 32% einer normalen 
Diskette. Schematisch ergibt sich dann 
folgender Aufbau für die RAM-Disk: 


$C000 RAM-Top 
$BEOO Block 93 

$BC00 Block 92 

USW. 

$0A00 Block 3 

$0800 Block 2 

$0400 Text-Page 1X 
$0200 RAM-Disk-Driver 
$0000 RAM-Bottom 


An das Progamm selbst wurde die Bedin- 
gung gestellt, daß es von allen Systemtei- 
len aus verfügbar sein sollte, so daß auch 
Filer, Compiler usw. zugreifen können. Es 
muß daher an einem Platz implementiert 
sein, an dem es nicht überschrieben wer- 
den kann. Der Interpreter selbst läßt für 
derartige Zusätze leider keinen Platz. Der 
Laufzeitkeller und die Halde verbieten, das 
Programm im Programmstack unterzubrin- 
gen. Ein geeignetes „Plätzchen“ findet 
sich allein im ungenutzten Bereich der 
Workarea des BIOS ab $BF80. Dort läßt 
sich aber beim besten Willen kein ganzes 
Treiberprogramm unterbringen. Somit 
wurde der Treiber, der für Parametertest, 
Umrechnung und Datentransfer zuständig 
ist, in den Hilfsspeicher „ausquartiert”, 
und zwar ab $0200. Im Hauptspeicher ab 
$BF80 liegt lediglich ein kurzes Interface, 
das alle Vorbereitungen für XFER trifft, den 
Treiber über XFER anspringt und schließ- 
lich alle Spuren beseitigt. 

Ist das Programm erst einmal installiert, so 
muß nur noch die vorgenannte Tabelle auf 
$BF80 justiert werden, und die RAM-Disk 
ist angeschlossen. Die Strukturierung und 
den endgültigen Einbau in das Laufzeitsy- 
stem übernimmt dann die sonst wenig 
nützliche Zap-Funktion des Filers. 


3. Programm 


Das Programm gliedert sich in drei Teile: 


1. Das Pascal-Programm RAMDISK94: 
Dieses Host-Programm übernimmt den 
Aufruf von INIT und prüft, ob die RAM- 
Disk schon initialisiert wurde. Der Hilfs- 
speicher wird nur bei Stromabschaltung 
gelöscht, so daß der Filer lediglich bei 
einem Kaltstart benötigt wird. Die Kon- 
stante Device ist die Volume-Nummer der 
RAM-Disk. Hier vorgenommene Änderun- 
gen müssen sinngemäß auch bei INIT und 
INSTALL erfolgen. 


Peeker 6/85 


2. Das Assembler-Programm INIT: 

Dieses Programm umfaßt die Initialisie- 
rungsroutine, die den Treiber in den Hilfs- 
speicher nach $0200 und das Interface in 
den Hauptspeicher nach $BF80 schiebt 
und schließlich die Device-Tabelle anpaßt. 
Ferner enthält INIT die Interface-Routine 
(INFCE) und den Treiber selbst 
(MANAGE). 


3. Den Exec-File INSTALL: 

Es dient der Filer-Steuerung beim Kalt- 
start. Man erhält den File folgendermaßen: 
Aus der Command-Prompt-Line heraus 
wähle man 

M(ake exec. 


Zu diesem Zeitpunkt müssen alle betroffe- 
nen Files verfügbar sein, also insbesonde- 
re der Filer selbst. Als Beispiel wird hier 
alles auf die Volume-Nummer 4 bezogen. 
Dann entwickelt sich folgender Dialog: 


New exec name: #4:1NSTALL.TEXT 
Terminator = %, change it? N <hier be- 
ginnt der Exec-File 

F <um den Filer aufzurufen 

Z <das Z(ap Kommando 

#11 <die installierte Device-Nummer 

N <keine Directory-Kopie 

94 <Anzahl der Blöcke auf Device #11 
(S.O.) 

RAMDISK <Device-Name 

Y <RAMDISK ist der richtige Name 


(Der folgende Dialog dient zur Übertra- 
gung einiger häufig gebrauchter Files auf 
die neue „Diskette“. Man kann natürlich 
auch andere Programme übertragen oder 
sie ganz frei lassen) 


T <für T(ransfer 

+#4:SYSTEM.FILER <z.B. den Filer 
#11:$ <zur neuen „Diskette“ 
#4:SYSTEM.EDITOR <und den Editor 
#11:$ 

Q <das war’s 

%% <Ende EXEC File 


Damit ist die RAM-Disk verfügbar. 


Literatur 

(1) Douglas Peterson, RAMDISK64, Nib- 
ble Magazine, 9/1984, S. 33. 

(2) Apple Computer, Apple Pascal Opera- 
ting System Reference Manual. 
(3) Apple Computer, Apple 
Language Reference Manual. 

(4) Apple Computer, Reference Manual for 
Ile only. 


Pascal 


gprscal 4 





Peeker-Sammeldisk +6 


zu Heft 6/1985, einzeln DM 28,— 
im Fortsetzungsbezug DM 20,— 


A 024 HELLO 
B 114 ASMDIV 


B 002 CURSOR1 

T 004 T.CURSOR1 

B 002 CURSOR2 

T 004 T.CURSOR2 

B 002 LINIE 

T 005 T.LINIE 

B 002 VIERECK 

T 005 T.VIERECK 

B 002 BOX 

T 009 T.BOX 

002 HINTERGRUND 
005 T.HINTERGRUND 
002 PAGE.SWAP 
004 T.PAGE.SWAP 


003 WANDERNDER.STRICH 
004 KOMPRESSOR.DEMO 
003 KREIS.1 

004 KREIS.2 

004 KREIS.3 

002 FLIPPER 

005 T.FLIPPER 

002 KOMPRESSOR 

012 T.KOMPRESSOR 


03 OLYMPIA 
21 .T.OLYMPIA 


0 

0 

043 FOURIER.MAIN 

019 FOURIER.SYN 

020 FOURIER.SPEC 

004 AS.ERWEITERUNG 

028 T.AS.ERWEITERUNG 

003 AS.ERW.PROSTART 
004 AS.ERW.PRO 

T 017 T.AS.ERW.PRO 


B 
I 
B 
1 
A 
A 
A 
A 
A 
B 
I 
B 
T 
B 
I 
A 
A 
A 
B 
I 
A 
B 


T 002 INSTALL.PASCAL.SOURCE 

T 005 RAMDISK94.PASCAL. 
SOURCE 

T 032 INIT.PASCAL.SOURCE 


A 002 RAMDISK.INIT.DOS 

B 002 AUXDRIVER 

T 010 T.AUXDRIVER 

B 002 MOVEDRIVER 

T 004 T.MOVEDRIVER 

B 002 RAMDISK.FORMATTER 
T 006 T.RAMDISK.FORMATTER 


A 002 SOLITAIRE.START 
A 029 SOLITAIRE 

B 004 SOLITAIRE.B 

T 016 T.SOLITAIRE.B 


Hüthig Software Service 
Postfach 102869 - 6900 Heidelberg 


49 


RAMDISK94.PASCAL.SOURCE 


PROGRAM RAMDISK94; 
USES CHAINSTUFF; 


CONST 
device = 11; 


PROCEDURE init; EXTERNAL; 


FUNCTION check : boolean; 

{check stellt fest, ob RAMDISK schon vorhanden ist} 
{Falls true, braucht nicht mehr gezapt zu werden} 
VAR 


idrec : {idrec ist ein Ausschnitt aus dem} 
RECORD {eventuellen Directory-Eintrag} 
first : integer; 
last : integer; 
ftype :6®..8; 
vname : string[7] 
END; 
BEGIN 
check := false; 
{$1-} 
UNITREAD (device,idrec,SIZEOF(idrec),2); 
{$I+} 


IF IORESULT = ® THEN 
WITH idrec DO BEGIN 
IF (first=®) AND (last=6) AND (ftype=ß) 
AND (vname='RAMDISK') THEN 


check := true {RAM-Disk schon initialisiert} 
END 
END; 
BEGIN 
SETCHAIN (''); INIT; 


IF NOT check THEN 
SETCHAIN ( 'EXEC/INSTALL') 
END. 


INIT.PASCAL.SOURCE 


‚ Installationsroutine 





Al .EQU 3C 





A2 .EQU 3E 
A4 .EQU 42 
XADR .EQU 3ED 
RETURN .EQU ® 
XFER .EQU 90314 
AUXMOVE .EQU BC311 
SLOTCXRD .EQU 8C915 
SLOTCXON .EQU dcpd6 
SLOTCXOF .EQU 8C097 
HIRESOF .EQU dc956 
DISKSTAT .EQU ®DCC5 ; Default-Disk-Status-Routine 
DSKVCT .EQU SFEAE ;‚ Basisadresse der Unittabelle 
.MACRO POP 
PLA 
STA 71 
PLA 
STA %l+1 
. ENDM 
.MACRO PUSH 
LDA %1+1 
PHA 
LDA %1 
PHA 
. ENDM 
50 





.PROC INIT 


. 
——— — ee 


’ 


’ 


; Die Initialisierungsroutine 


. 
’ 


’ 


BCK 


STAT 
DEVICE 


POP RETURN Platz schaffen 
LOAD Al,RETURN+2,8 

LDA #9® ; Treiber im 

STA A4 ;‚ Hilfsspeicher 
LDA #92 ;‚ ab $9200 ablegen 
STA A4+l 

LDA DRVST 

STA Al 

LDA DRVST+1 

STA Al+l 

LDA DRVED 

STA A2 

LDA DRVED+1 

STA A2+1 

JSR MVE 

LOAD INFCE, ®BF8®,7F 


‚ verschieben 
Interface nach 

; $BF8® schieben. 

LDA DEVICE ; Tabelle für 

ASL A ; Device #11 justieren 

TAY 

LDA #7F 

STA DSKVCT,Y 

INY 

LDA #@BF 

STA DSKVCT,Y 

LOAD RETURN+2,A1l,8 

PUSH RETURN 

RTS ;‚ und Ende 


LDA SLOTCXRD 


; Rekonfiguration 


; Firmware-Status 

STA STAT testen und sicher- 

STA SLOTCXOF stellen, daß 

SEC ;‚ Firmware zugeschaltet 
JSR AUXMOVE : Aut. 

LDA STAT ; Firmware-Status wieder 
BMI BCK ; herstellen. 

STA SLOTCXON 

RTS 


.BYTE 


.„BYTE 11. ; kann geändert werden 


’ 


’ 


;‚ Das Interface Programm zur Treibersteuerung 


’ 


; X- Register enthält Operationsparameter: 


DEFSTAT 


UNITREAD 
UNITWRITE 
UNITCLEAR 
UNITSTATUS 
CPX #2 ; keine Aktivität bei 
BNE DEFSTAT ; UNITCLEAR 
LDX #99 
RTS 


CPX 
BNE 
JMP 


STA 


POP 
LDA 


#5 
BEGIN 
DISKSTAT 


HIRESOF 


RETURN 
XADR 


‚ Stack leeren durch 
; Default-UNITSTATUS 


; Wichtig: Abschalten, um 
; Überschreibungen zu verhindern 
‚ alte Werte sichern 


STA RETURN+1B. 
LDA XADR+1 
STA RETURN+11. 


LDA #99 
STA XADR 
LDA #92 
STA XADR+1 


: $0200 ist Treiberstart 


LDA SLOTCXRD s.o., Firmware muß zugeschaltet 
STA RETURN+12. ; sein 

STA SLOTCXOF 

CLV 





Peeker 6/85 


; JSR wird verwendet, um die 
; Return-Adresse zu sichern 


LDA RETURN+12. ; <- Return-Punkt ist hier 

BMI DONE 

STA SLOTCXON ;‚ Firmware wieder herstellen 

LDA RETURN+1®. . . 

STA XADR ; die alten Werte wieder einsetze ; UNITREAD simulieren 
LDA RETURN+11. 

STA XADR+1 

PUSH RETURN 

RTS ; zurück zum Hauptprogramm 


; Es folgt das Treiber Programm. 
; Zuoberst auf dem Stack liegt die 
; Return-Adresse-l 


STA 
CLC ; C=® für Aux-Main-Transfer 


DISCARD PLA ; Unitnummer und 
PLA 
PLA ; Modeparameter vergessen 
PLA 


.WORD DRVST+2 


MANAGE CGLE ; Return-Adresse fixieren 


PLA ; und Workarea freimachen PHP 
ADC #01 
STA XADR LDA A2 


n +00 BNE EXEC ;‚ ausgleichen 
DEC A2+1 


;‚ End-Adresse von Source 


STA XADR+1 

LOAD Al,RETURN+2,8 Ei ar 

PLA ; Blocknummer holen JSR AUXMOVE 

TAY 

PLA 

CPY : ; Block >= 94 (dez) 

BCS ; oder < 2 ist unzulässig PLA 

CPY 

BCC PLA 
. PLA ;‚ Stack leeren und 

TYA ; Umrechnung auf Speicheradresse PLA : wit Poshlerindikater 

n_ PLA 'No room on volume' 

PLA ; zurück 

ADC PLA 

TAY PLA 

TXA ; verzweigen zur entsprechenden LDX +8 

BEQ ; Operation 


; Ausführung und 
LDX #9 ; Rückkehr ohne Fehler 
BEQ BACK 


Im Falle eines Fehlers: 


STY ; UNITWRITE simulieren LOAD RETURN+2, Al,8 alte Werte wieder 
CLC ‚ einsetzen und zurück 
LDA 
STA CLV : zum Interface 
JMP XFER 


PLA RER Ur ENEREGUCR-ENGEES TE DISS SEHE DEENENEOEUEPSTEIEREBESNE: 


STA 
PLA DRVED .WORD DRVED-1 


STA 
GLE . END 
er = INSTALL.PASCAL.SOURCE 
ADC A2 ZFZ#11 
STA A2 N94 
PLA RAMDSIISK 

Al+1 YT#4:SYSTEM.FILER 

A2+1 #11:$ 

A2+1 T#4:SYSTEM.EDITOR 

;: C=1 für Main-Aux-Transfer #+11:$ 
DISCARD 0%%%% 





Inserentenverzeichnis peeker 6/85 


Seite 

Entwicklungsbüro Brecht, Fellbach-Schmiden . . . . . 17 Intus, Waldshut-Tiengen . . . 2 2 2 2 2 2 220.0. 32 
Bühler Elektronik, Baden-Baden . . . 2 2 2.2.2.2..68 Klaus Jeschke, Kelkheim. . . ». » 2 2 222 220..8 
ccp datentechnik, Hamburg . . . . Fa: . E.-W. Meyer, Frohnhausen . . . . 2 2 2 2 2 2.2..8 
Computerladen Memmingen, Memmingen . 71 Micromint Computer GmbH, Erkralh. : = © = x 2-3 
copy-team gmbh, Erlagen 19 Ulf Mohwinkel Electronic, Leverkusen . . . 2 ..2..2...17 
D.O.S. Computersysteme, Schwäbisch Hal u  : ; sera en sr a a a BE Be a SE ae SE Be 

pandasoft, Berlin . . . Fe a a Va Ge >. 
Erbrecht Computer Related Products, Hamburg . . . . 10 r + r electronic, Heidelberg . 35 
erphi electronic GmbH, Großhelfendorff . . . . . . A US Schappach Computer, Mannheim. . 2 2 2.2.2.2..2..32 
hib Computerladen, Nürnberg . . . » 2 2.2.2.2..2..19 Tewi Verlag, München . . . 22 2.2.2.2..2...383 US 
IBS Computertechnik, Bielefeld . . . . 2 2... 2 US Tombstone-Micro, Berlin . . . . 2 2 2 2 222... 735 
Interkom Electronic, ISsenhagen . . . . 2 2.2.2..2.76 Ueding electronics, Menden. . . . . 2 22.2.2... 715 


Peeker 6/85 51 








ProDOS 


Theorie und Praxis 


von Ulrich Stiehl 


Im Peeker können wir aus Platz- 
gründen nicht alle Feinheiten des 
komplizierten Betriebssystems 
ProDOS darstellen. Deshalb er- 
scheinen im Hüthig-Verlag in eini- 
gen Wochen zwei neue ProDOS- 
Bücher, das eine mehr theoreti- 
sche Werk von Arne Schäpers, das 
andere mehr praktische Buch von 
mir selbst. Hierzu sind einige 
grundsätzliche Anmerkungen er- 
forderlich. 


ProDOS für Aufsteiger, Band 2 
von U. Stiehl, Juni 1985, ca. 180 
Seiten, DM 28,- 

(Begleitdiskette gesondert erhält- 
lich, ebenfalls DM 28,-) 


Im Gegensatz zu DOS 3.3 hat die 
Firma Apple bei ProDOS eine neue 
Politik eingeschlagen. Um einer- 
seits die Besitzer von Nachbauten 
(einsichtig!) und andererseits die 
Produzenten von Fremdlaufwer- 
ken (weniger einsichtig!) von der 
Benutzung von ProDOS auszu- 
schließen, erscheinen in fast regel- 
mäßigen Abständen neue Pro- 
DOS-Versionen. Dies war zu dem 
Zeitpunkt, als ich den ersten Band 
von „ProDOS für Aufsteiger“ ver- 
faßte (Mai 1984), noch nicht abzu- 
sehen. Ursprünglich sollte der 
zweite Band neben einer Einfüh- 
rung in die Applesoft-Programmie- 
rung unter ProDOS eine Fülle von 
Tips und Tricks enthalten, um bei- 
spielsweise fremde Laufwerke auf 
ProDOS anzupassen usw. Neben 
den Urversionen für Entwickler 
sind jedoch inzwischen minde- 
stens 4 Versionen aufgetaucht, 
nämlich ProDOS 1.0.1, 1.0.2, 1.1 
und 1.1.1, und weitere Versionen 
werden mit Sicherheit folgen. Pro- 
gramme, die ProDOS an absoluten 
Adressen patchen, wie beispiels- 
weise das FORMAT.LC-Programm 
im Peeker, Heft 5/85, sind damit 
versionsabhängig und in keinem 
Fall portabel. Selbst bei Diversi- 
DOS und anderen DOS-3.3-Va- 
rianten konnte man sich darauf 
verlassen, daß sich grundlegende 
Systemroutinen wie die RWTS im- 
mer an derselben Stelle befanden. 
Begann beispielsweise der Pro- 
DOS-Disk-Driver bis zur Version 
1.0.2 noch bei $F800, wie auch im 


52 


„ProDOS Technical Reference 
Manual“ der Firma Apple angege- 
ben, so beginnt er bei der Version 
1.1.1 jetzt bei $D000. Aufgrund 
dieser geänderten Sachlage habe 
ich für den zweiten Band von „Pro- 
DOS für Aufsteiger“ alle Program- 
me so „seriös“ geschrieben, daß 
sie grundsätzlich auf allen bisheri- 
gen und möglicherweise auch auf 
allen zukünftigen Versionen laufen, 
es sei denn, daß die MLI-Schnitt- 
stelle und die Dateistrukturen als 
solche radikal geändert werden. 


Der zweite Band beginnt mit einer 
bewußt leichtverständlichen Ein- 
führung in das BASIC.SYSTEM für 
Applesoft-Programmierer. Danach 
werden vermischte Tips und Tricks 
gegeben, soweit sie unter dem 
BASIC.SYSTEM noch zulässig 
sind, z.B. zu den Problemen Hires- 
Grafik und FRE-Befehl, INPUT bei 
Strings mit Kommas und Doppel- 
punkten, Speichern von Zahlen- 
Arrays als Binärfiles, Simulation 
des fehlenden MON-Befehls usw. 
Sodann folgt eine umfangreiche 
Sammlung von überwiegend in 
Assembler geschriebenen, sofort 
einsatzfähigen Hilfsprogrammen: 
— Dateileseprogramme zum Einle- 
sen von Dateien beliebiger Größe 
zwecks Ausgabe als ASCII- oder 
Hexdump auf dem Bildschirm bzw. 
Drucker. 

— Diskettenkopierprogramme für 
1-Drive- und 2-Drive-Besitzer 
(analog zu COPYA,). 

— Dateikopierprogramme analog zu 
FID. Das eine der beiden Program- 
me ist fast ausschließlich in Ap- 
plesoft geschrieben, um die Lei- 
stungsfähigkeit der BASIC.SY- 
STEM-Befehle zu veranschauli- 
chen. 

— Konvertierungsprogramm für die 
Richtung DOS 3.3 nach ProDOS. 
— Ferner Diskettenvergleichspro- 
gramm, Formatierungsprogramm 
(versionsunabhängig!), Bad- 
Block-Routine u.a. 


Die ProDOS-Analyse 
von A. Schäpers, Juli 1985, ca. 
450 Seiten, ca. DM 54,- 


Auch wenn Arne Schäpers jetzt rot 
wird, muß es einmal an dieser Stel- 
le gesagt werden: Sein Buch ist 
die umfangreichste und detaillier- 
teste Darstellung, die jemals ein 
Apple-Betriebssystem erfahren 
hat. In der nunmehr zur Neige ge- 
henden DOS-3.3-Ara war „Be- 
neath Apple DOS“ von D. Worth 
und P. Lechner die „Bibel“ für alle, 


die wissen wollten, was DOS 3.3 
zum „Ticken“ bringt. Den Nachfol- 
geband „Beneath Apple ProDOS“, 
der im Sommer 1984 erschien, 
empfand ich persönlich als eine 
herbe Enttäuschung, weil dort im 
wesentlichen nur das repetiert 
wurde, was bereits im „ProDOS 
Technical Reference Manual“ 
stand. Wer deshalb die teilweise 
„verqueren Innereien“ von Pro- 
DOS bis zum letzten Byte — um 
nicht zu sagen Bit — kennenlernen 
möchte, der sollte sich diese volu- 
minöse Werk von Arne Schäpers 
zulegen, welches das komplette 
Betriebssystem (Urlader, MLI, 
Disk-Driver, RAM-Disk-Driver und 
Thunderclock-Routine) — mit Aus- 
nahme des BASIC.SYSTEMSs, das 
zu einem späteren Zeitpunkt ge- 
sondert behandelt wird — mit um- 
fangreichen Kommentaren und 
Übersichtstabellen disassembliert. 
Während der zweite Band von 
„ProDOS für Aufsteiger“ fertige 
Utilities enthält, die man auch dann 
anwenden kann, wenn man über 
keine Assemblerkenntnisse ver- 
fügt, wendet sich die „ProDOS- 
Analyse“ an den reinen Assem- 
blerprogrammierer, dem sich je- 
doch gerade wegen der minutiö- 
sen theoretischen Sezierung von 
ProDOS völlig neue programmier- 
praktische Perspektiven eröffnen. 
Durch die parallele Darstellung al- 
ler bisher vorliegenden Versionen 
— insbesondere 1.0.2 und 1.1.1 — 
ergeben sich zudem interessante 
Einsichten in den „Programmier- 
stil“ der Firma Apple. Ferner kön- 
nen Programmierer, die ProDOS 
versionsabhängig patchen möch- 
ten, hier genau überblicken, wo 
gepatcht werden muß, damit dies 
keine negativen Konsequenzen 
hat. 


Daß auch das BASIC.SYSTEM von 
uns genauer unter die Lupe ge- 
nommen werden muß und wird, 
zeigt das nachfolgende Beispiel- 
programm. Wenn man es — nach- 
dem man es unbedingt zuvor auf 
Diskette gespeichert hat! — dreimal 
startet, und zwar mit 


RUN 
RUN 130 
RUN 140 


stellt man beim dritten Durchlauf 
fest, daß es sich selbst zerstört hat. 
Dieser Bug wurde in einem Leser- 
brief an die amerikanische „Nib- 
ble“ erwähnt, doch wurde dort kei- 
ne Lösung des Problems angebo- 
ten und im übrigen gemutmaßt, 
daß der Bug nur dann auftritt, wenn 
das Applesoft-Programm weniger 


als 1 Block (= 512 Bytes) lang ist. 
Dies ist jedoch nicht der Fall. Viel- 
mehr tritt die Programmzerstörung 
exakt dann auf, wenn unmittelbar 
nach dem LOAD oder RUN eines 
Applesoft-Programms von Disket- 
te eine sequentielle Textdatei mit 
OPEN - READ Feld-Nummer grö- 
Ber O eröffnet wird. Danach wird 
dieses Feld und nur dieses ab 
$0801 (Programmanfang) im Spei- 
cher abgelegt, und zwar als Zei- 
chenkette plus Return mit Bit 7 off 
(gilt auch für Zahlen). Daß man in 
Betriebssystemen immer wieder 
den einen oder anderen Bug fin- 
det, ist nichts Neues, daß jedoch 
Betriebssysteme auch Programme 
zerstören, war mir bislang unbe- 
kannt. Ab der BASIC.SYSTEM 
Version 1.1, die zu PRODOS 1.1.1 
vom Herbst 1984 gehört, ist dieser 
Bug beseitigt. Doch wer bekommt 
schon diese Version? Als ich in 
diesem Jahr für die Peeker-Redak- 
tion einen Apple IIc erwarb, befand 
sich auf der Systemdiskette („Sy- 
stem-Dienstprogramme“) noch 
die Version 1.0.2, und die Diskette 
„Einführung in BASIC“ enthält so- 
gar noch die Version PRODOS 
1.0! Sollte also die gekaufte Ver- 
sion nur dazu gedacht sein, daß 
man angeregt wird, zusätzlich die 
(hoffentlich dann weitgehend) feh- 
lerfreie Version zu kaufen? 


100 REM FIELD.BUG:F >O 

110 POKE 768,2 

120 PRINT CHR$ (4) "OPEN 
XXX“: PRINT CHR$ (4) 
“WRITE XXX": FORX = 1T0O 
10: PRINT X: NEXT : PRINT 
CHR$ (4) “CLOSE“: GOTO 
150 

PRINT CHR$ (4) "OPEN 
XXX“: PRINT CHR$ (4) 
“READ XXX“: PRINT CHR$ 
(4) “CLOSE“: REM Trick- 
Zeile 

PRINT CHR$ (4) "OPEN 
XXX“: PRINT CHR$ (4) 
“READ XXX,F"1: INPUT X: 
PRINT CHR$ (4) "CLOSE“ 
LIST 

IF PEEK (768) = 2 THEN 
POKE 768,1: PRINT : PRINT 
“Jetzt RUN 130 tippen“: 
PRINT CHR$ (4) "LOAD 
FIELD.BUG“ 

IF PEEK (768) = 1 THEN 
POKE 768,0: PRINT : PRINT 
“Jetzt RUN 140 tippen“: 
PRINT CHR$ (4) "LOAD 
FIELD.BUS” 

REM Ohne Trick-Zeile wird 
Applesoft-Programm zerstört! 
REM Gilt für ProDOS-BASIC- 
‚SYSTEM bis Version 1.0.2 


130 


140 


150 
160 


170 


180 


190 


Peeker 6/85 






» peeker- Börse 


Verkaufe neuwertigen Typenrad- 
drucker mit Apple-Interface. 
Preis auf Anfrage. Tel. 007 


2 Produkt-Karte 


Neu im Angebot: Professionelle, 
separate Tastatur für Apple Il 

plus 16 Funktionstasten und sepa- 
ratem Ziffernblock. 

Fa. Keyboard & Co. 


a Info -Karte 











| MAGAZIN FÜR APPLE-COMPUTER 


AUFTRAG FÜR KLEINANZEIGEN 


Bitte veröffentlichen Sie in der nächsterreichbaren Ausgabe nachstehenden 
Text unter folgender Rubrik: 


[] suche Hardware [] suche Software [] Tausch U] Verschiedenes 
[] biete Hardware [] biete Software [] Kontakte U Chiffre 


Bitte jeweils 32 Buchstaben pro Zeile-einschließlich Satzzeichen und Wort- 
zwischenräume. Bitte Absender nicht vergessen. 
Chiffregebühr DM 6,— zuzügl. MwSt. 


MAGAZIN FÜR APPLE-COMPUTER 


Zu der in »peeker«, Heft_____, Seite ______ erschienenen 
[| Anzeige [| Produktbesprechung 





über 





bitte ich um detaillierte Information. 
Ich wünsche [| Prospekt, Datenblatt [| Preisliste [|] schriftliches Angebot [| tel. Rückruf 


Produkt und Bestellnummer 


gebe ich neben- 
stehende Bestellung 
unter Anerkennung 
Ihrer in der Anzeige 
genannten Liefer- und 
Zahlungsbedingungen 
auf. 





Unterschrift (für Jugendliche unter 18 Jahren der Erziehungsberechtigte) 


MAGAZIN FÜR APPLE-COMPUTER 


Schreiben Sie uns, wenn Sie Fragen, Ergänzungen oder Anregungen zu 
Aufsätzen in »peeker« haben: 








» a t ANTWORTKARTE 
©. Bere rn 
Straße 









peeker-Börse 
Anzeigen-Service 


Dr. Alfred Hüthig Verlag 
Postfach 102869 
6900 Heidelberg 1 





Bitte w veröffentlichen Sie den um- 
ulm stehenden Text von Zeilen 
Ar ____ DM in der nächsterreich- 
n Ausgabe von »peeker« 










Unterschrift 


Karte bitte vollständig ausfüllen 


9 
u Vorname, Name 
& 
















POSTKARTE 
Firma 
Straße 
Telefon mit Vorwahl = 
‚1 Anschrift der Firma angeben, bei der Sie PLZ/Ort 
bestellen bzw. von der Sie Informationen 
wünschen 
( Karte bitte vollständig ausfüllen 
2 um POSTKARTE 
O Vorname, Name 
= Firma 
eo) eeker 
in ._ 
m Redaktion 
BER Straße 
Postfach 10 2869 
PLZ/Ort | 6900 Heidelberg 1 
Telefon mit Vorwahl 








EEEER 


Produkt- 
Karte 


Wünschen Sie 
weitere Informationen 
zu einem der im Heft 
vorgestellten 
Produkte ? 








Nichts einfacher als 
das. 

Produkt-Karte aus- 
füllen, mit 60-Pfennig 
frankieren und 
absenden. 


Vorher aber nicht 
vergessen: 

kreuzen Sie an, 
welchen Informations- 
wunsch Sie haben. 


Damit erleichtern Sie 
dem Hersteller 

eine gezielte Beant- 
wortung Ihrer Anfrage. 


Zum Schluß tragen 
Sie auf der Rück- 
seite die genaue 
Anschrift des 
Inserenten/Herstellers 
und Ihre vollständige 
Firmenanschrift ein. 


pt MAGAZIN FÜR APPLE-COMPUTER 














Apple-CP/M 


Mit einem RAM-Disk-Driver für die 64K-Karte 


von Karl-Walter Bott 


rg 
= Pa 7, AR En 
7 .. FE ie, 


ze Yai W 
“- f 


er) “Tr? 
ee fi: 
yZ ef" 
„Hllur 
DR" hi ’ 
Y Fi AR 
DET, 


HL: z 14 


d J Fat 
De nl 


DIRT TTEITITTL. f j 


m. 
Ds 


u 









MU; 


KerH, » 
00 DER 
RR 









7 7 ; SS (m 
AUT 


AO 


Peeker 6/85 








LIE, EN \ a 
N U / IWW TE, S, “ 
U, 7 HL dd , NZ 


Das Betriebssystem CP/M (Control Pro- 
gram for Microcomputer) ist immer noch 
eines der weitestverbreiteten Betriebssy- 
steme, obwohl mit dem Einstieg in die 16- 
Bit-Mikroprozessortechnik eine Reihe von 
neuen Betriebssystemen wie UNIX oder 
MS-DOS entwickelt worden sind, die we- 
sentlich leistungsfähiger sind als das auf 
den Apple-Il-Computern verfügbare CP/ 
M. Die Hauptgründe hierfür sind ein gro- 
Bes Software-Angebot und der relativ ge- 
ringe Preis für ein professionelles Be- 
triebssystem. 


Die Geschichte von CP/M begann 1978 
zu einer Zeit, als verschiedene Geräteher- 
steller eigene Betriebssysteme entwickel- 
ten, die aber geheim und dem Benutzer 
nicht zugänglich waren. Die vorhandene 
Software war nicht portabel. 

Mit dem Erscheinen von CP/M änderte 
sich das schlagartig. 


Die Urversion von CP/M wurde für Mikro- 
computer entwickelt, die mit einem 8-Bit- 
Mikroprozessor vom Typ 8080 ausgestat- 
tet waren. Die Besonderheit des Betriebs- 
systems besteht darin, daß nur ein Teil 
hardware-abhängig ist und der Benutzer 
eine genau definierte Schnittstelle zwi- 
schen hardware-abhängigem und -unab- 
hängigem Teil vorfindet. 


95 





1. Aufbau des Betriebssystems 
CP/M 


CP/M besteht im wesentlichen aus fünf 
Modulen: 


a) Page 0 

Die Page O (0000H-OOFFH) ist ausschließ- 
lich für CP/M reserviert und enthält wichti- 
ge Code- und Datensegmente. (Hinweis: 
Hexadezimale Adressen werden im fol- 
genden für CP/M bzw. Z80 mit nachge- 
steltem „H“ und für 6502 mit vorange- 
stelltem „$“ gekennzeichnet.) 


b) TPA (Transient Program Area) 

Sie beginnt in der Seite 1 ab O100H. Alle 
Anwenderprogramme werden ab dieser 
Adresse von Diskette in den Hauptspei- 
cher geladen und an der Adresse 0100H 
gestartet. 


c) CCP (Console Command Processor) 
Dies ist die eigentliche Schnittstelle zum 
Benutzer. Hier werden alle über die Tasta- 
tur eingegebenen Zeichen und Befehle 
verarbeitet und interpretiert. Die Adresse, 
ab der der CCP in den Speicher gebracht 
wird, hängt von der Größe des verfügba- 
ren Gesamtspeicherraums ab. 


d) BDOS (Basic Disk Operating 
System) 

Das BDOS verwaltet alle angeschlosse- 
nen Diskettenlaufwerke und ist für sämtli- 
che Ein- und Ausgabe-Operationen zu- 
ständig. Dem Benutzer wird hier eine Rei- 
he von Grundfunktionen zur Verfügung 
gestellt, z.B. Laufwerk auswählen, Datei 
öffnen oder Zeichen von der Konsole le- 
sen. Das BDOS ist ebenfalls völlig von der 
Hardware unabhängig und bildet mit dem 
CCP die Basis des Betriebssystems. Das 
BDOS wird ab Adresse CCP + 0800H in 
den Hauptspeicher geladen. 


e) BIOS (Basic Input Output System) 

Das BIOS ist der einzige hardware-abhän- 
gige Teil des Betriebssystems und führt 
alle Ein- und Ausgabe-Funktionen aus, 
z.B. Daten auf Drucker, Terminal oder Dis- 
kette bringen. Das BIOS wird ab Adresse 
CCP + 1600H in den Speicher geladen. 


2. Apple II und CP/M 


Die Computer der Apple-Il-Serie sind in 
ihrer Grundausstattung nicht CP/M-fähig: 
Der Apple besitzt keinen Mikroprozessor 
vom Typ 8080 oder Z80. Weiterhin wird 
kein RAM-Bereich ab Adresse 0100H zur 
Verfügung gestellt, der durchgehend dem 


56 


Bild 1 


B000H-ÖFFFH 
1000H-1FFFH 
2000H-2FFFH 
300®H-3FFFH 
ABOB®H-AFFFH 
5000H-5FFFH 
T000H-7FFFH 
8PB0H-SFFFH 
9000H-9YFFFH 
ABPBPH-AFFFH 
BOßG®H-BFFFH 
COD®H-CFFFH 
DOPBH-DFFFH 
EOP߮H-EFFFH 
FOOBH-FFFFH 


1000-$1FFF 
2000-$2FFF 
3000-$3FFF 
ad00-$AFFF 
5000-$5FFF 
6000-$6FFF 
8000-$8FFF 
9099-$IFFF 
ABDB-$AFFF 
BOBB-$BFFF 
DO00-$DFFF: Bank 2 der LC 
E000-$EFFF: Bank 2 der LC 
FO00-$FFFF: Bank 2 der LC 
CO0B-$CFFF 


a | Be | Be | a | De | De | De Be | Be | ee VB BE Eu 


Bild 2 


Funktion 


BOOT 
$01 WBOOT 
$92 CONST 
$93 CONIN 
594 CONOUT 
$05 LIST 
$06 PUNCH 
$97 READER 
$08 HOME 
$99 SELDSK 
$DA SETTRK 
$0B SETSEC 
$oC SETDMA 
$OD READ 
$0E WRITE 
$OF LISTST 
$19 SECTRAN 


Kaltstart 
Warnmstart 
Konsolstatus 
Konsoleingabe 
Konsolausgabe 
Druckerausgabe 
Stanzerausgabe 
Leserausgabe 


Auswahl der Spur 
Auswahl des Sektors 
DMA-Adresse setzen 


Druckerstatus 


Quelle: c't 1984, Heft 9, S. 82 





Benutzer zur Verfügung steht, da z.B. ab 
Adresse $0400-$07FF der Bildschirm- 
speicher angesprochen wird und der Be- 


‘reich ab $C000-$CFFF ebenfalls tabu ist, 


da über diese Adressen die wichtigen 
Softswitches aktiviert werden und AdreßB- 
bereiche für Speicher auf Zusatzkarten in 
den Slots 1-7 reserviert sind. 

Abhilfe schafft hier die Z80-Karte. Ge- 
meint ist damit die „normale“ Z80-Karte, 
die keinen Zusatzspeicher und keinen ei- 
genen Systemtakt besitzt. Sie ermöglicht 
den Betrieb von CP/M 2.2; CP/M 3.0 ist 
nicht ablauffähig. Sie erfüllt im wesentli- 
chen zwei Aufgaben. 

Zum einen wird eine Umkodierung der 
Adressen vorgenommen, so daß ein 
durchgehender RAM-Bereich ab Adresse 
0000H-DFFFH zur Verfügung steht (Bild 
1). Der wichtige Softswitchbereich ab 
$C000 kann unter CP/M mit den Adressen 
ab EOOOH angesprochen werden. Das be- 
nötigte RAM stellt die Language-Card 
Bank 2 bereit. Zum anderen wird der be- 
nötigte Mikroprozessor zur Verfügung ge- 
stellt. 





D000-$@FFF: Zeropage, Stack, Bildschirm 


Diskettenlesekopf in ®,®-Position 
Auswahl des Laufwerks 


Lesen eines Track/Sectors 
Schreiben eines Track/Sectors 


Übersetzung logisch. /physik.Sektor 


Eine Besonderheit des Apple-CP/M-Sy- 
stems ist die Zusammenarbeit des Z80 mit 
dem 6502, der als Slave-Prozessor dient, 
da über ihn alle Ein- und Ausgabe-Opera- 
tionen abgewickelt werden, die auf der 
Maschinenebene ablaufen. 


3. Die Zusammenarbeit zwischen 
Z80 und 6502 unter CP/M 


Bild 2 zeigt das Programm, welches die 
eigentliche Schnittstelle zwischen Z80 
und 6502 darstellt und von der CP/M- 
Diskette bei einem Kaltstart ab Adresse 
$03C0 (F3COH) in den Speicher gebracht 
wird. Wichtig ist noch die Speicherstelle 
$03DE. Sie enthält das höherwertige Byte 
der Slotadresse, in der die Z80-Karte in- 
stalliert ist z.B. E4H für Slot 4. Diese Spei- 
cherstelle und der entsprechende Ope- 
rand des STA-Befehls ab Adresse $03C6 
werden bei jedem Kaltstart initialisiert. 
Daraus ergibt sich folgende prinzipielle 
Vorgehensweise bei der Aktivierung des 
6502-Prozessors, wenn der Z80 aktiv ist: 


Peeker 6/85 








Zunächst muß die Adresse festgelegt wer- 
den, an dem der 6502 sein Unterpro- 
gramm ausführen soll. Dies geschieht da- 
durch, daß die gewünschte Adresse in die 
Speicherstellen $03D0, $03D1 geschrie- 
ben wird. Von Bedeutung ist auch hier die 
beschriebene Umkodierung der Adressen. 


Angenommen, wir wollen eine 6502-Rou- 
tine aus dem Apple-ROM aufrufen, z.B. 
PRERR mit der Adresse $FF2D, so kön- 
nen wir das mit folgender Z80-Befehlsse- 
quenz erreichen: 


LD HL,OFF2DH 
LD (OF3DO),HL 
LD HL,(OF3DEH) 
LD (HL),A 


Der erste Befehl lädt das HL-Register mit 
der Adresse des 6502-Unterprogramms, 
der zweite schreibt die 16-Bit-Adresse in 
die Speicherstellen $03D0, $03D1. Von 
Bedeutung ist hier, daß die Z80-Adresse 
F3DOH als Zieladresse angegeben wird, 
da sie der Adresse $03D0, $03D1 ent- 
spricht, wenn der 6502 aktiv ist (Bild 1). 
Der dritte Befehl holt die Adresse des 
Slots, in dem die Z80-Karte installiert ist. 
Auch hier ist die Umkodierung der Adres- 
sen zu berücksichtigen. 

Der Befehl lädt den Z80-Akkumulator in 
die Slotadresse. Es kommt hierbei nur dar- 
auf an, daß die Slotadresse auf dem 
Adreßbus des Z80 anliegt und in die ange- 
gebene Adresse geschrieben wird. Wel- 
che Daten anliegen, ist unerheblich analog 
zu dem Betätigen eines Softswitches un- 
ter Kontrolle des 6502 (z.B. STA $C000). 
Der Z80 wird dadurch angehalten und der 
Adreß- und Datenbus für den 6502 freige- 
geben. Dessen Programmzähler wird mit 
der Adresse $03C9 geladen, so daß er 
seine Arbeit an der Adresse $03C9 auf- 
nimmt. 

An dieser Stelle werden in bekannter Wei- 
se zunächst das Apple-ROM lesefähig ge- 
macht und die CPU-Register geladen. Mit 
dem Befehl JSR $xxxx ab Adresse $O3CF 
wird das eigentliche 6502-Unterprogramm 
aufgerufen. Die Adresse $xxxx ist vorher 
vom Z80 definiert worden. Nach der Rück- 
kehr wird das ROM auf jeden Fall wieder 
lesefähig gemacht und die 6502-Register 
werden gerettet. 

Mit dem Sprung nach $03C0 wird die 
Rückkehr zum Z80 eingeleitet: Language- 
Card Bank 2 schreib- und lesefähig ma- 
chen und mit „STA $CnO00“ den Z80 ak- 
tivieren. Der Z80 setzt die Arbeit mit dem 
nächsten Befehl nach „LD (HL),A“ fort. 
Stackpointer und sämtliche Registerinhal- 
te werden nicht verändert. 


Peeker 6/85 


SWITCHDEMO.HEX 


: 100 100003E003224Fß212E117D3245Fß7C3247Fß42 
: 10011000213 ADB22DPF32ADEF3773EB3CD22P1C35E 
: 100120000000305782822A01BW16005F19EY5A38N3 
:10013000302D36353032295357495443482D4445ED 
:B3ß 14BWPADAFBN2DHDDDDDDHDDDDDDDDDDDDDDDNNN 


SWITCHDEMO 
; ak SWITCHDEMO xxx 


d100 ORG ®1PPH 
OF®ATH 
OF®4A5H 
®DB3AH 
OF®24AH 
OF3D®H 
OF3DEH 


YREG 
AREG 
STROUT 
HCURS 
VEC 
CPU 


FO47 
F045 
DBS3A 
F®24 
F3D® 
F3DE 


EQU 
EQU 
EQU 
EQU 
EQU 


ee u u | 


DODMSH 
PODHOH 


CONIN 
WBOOT 


0093 
nu) 


EQU 
EQU 


MVI 
STA 


A,® 
HCURS 


D199 
0192 


3EQ® 
3224FQ 


LXI 
MOV 
STA 
MOV 
STA 
LX1 
SHLD VEC 
LHLD CPU 
MOV M,A 


D105 212EIl 
B108 7D 
0109 3245Fd 
D1DC 7C 
B1BD 3247F® 
D11® 213ADB 
B113 22DPF3 
B116 ZADEF3 
B119 77 


A,L 
AREG 
A,H 
YREG 


D11A 
dllc 
Öl1F 


3E03 
CD2201 
c3d09P 


CALL BIOS 
JMP WBOOT 


H,STRING+19®®H 


H,STROUT 


MVI A,CONIN 


‚String Output 
;:Horizontaler Cursor 


;HTAB = ® 
‚Adresse des Strings 
‚LSB --> A-Reg. 6592 


;MSB --> Y-Reg. 65%2 
;Up-Adresse übergeben 


‚Slotadr. holen 
:6502 aktivieren 


‚FKT-Nr. für CONIN 
‚durch BIOS ausführen 


; Einsprungadresse der BIOS-Funktion berechnen und 


; Funktion ausführen 


DCR A 
MOV D,A 
ADD D 
ADD D 


BIOS 


LHLD WBOOT+1 


MVI D,® 
MOV E,A 
DAD D 
PCHL 


5A38302D36STRING 
nn DB ®®H 
END 





Wenn wir das Programm SWITCHDEMO 
betrachten, stellen wir fest, daß eine einfa- 
che Parameterübergabe zwischen CP/M 
und 6502 möglich ist. Die Parameter kön- 
nen entweder direkt über die Zero-Page 
übergeben werden, wie dies durch die 
Übergabe der horizontalen Cursorposition 
demonstriert wird, oder durch „Poken“ in 
die 6502-Register-Save-Area, da die 
6502-Register bei jeder Aktivierung durch 
die Schnittstelle 6502-Z80 geladen 
werden. 

Nach dem Start des Programms SWITCH- 
DEMO erscheint auf dem Bildschirm der 
Text „Z80-6502 Switch-Demo“, der durch 
die Applesoft-Routine STROUT ausgege- 
ben wird. Danach erfolgt ein Rücksprung 
zu CP/M, von wo über die BIOS-Funktion 


DB "280-6502 SWITCH-DEMO" 


CONIN auf einen Tastendruck gewartet 
wird, der einen CP/M-Warmstart auslöst. 


4. Apple Ile und CP/M 


Auch auf diesem Computer ist CP/M ge- 
nauso lauffähig wie auf einem Apple Il. 
Unangenehm ist nur, daß nach einem CP/ 
M-Warmstart die Firmware der neuen 80- 
Zeichenkarte den gesamten Bildschirm 
löscht, und somit Informationen wie z.B 
Fehlermeldungen eines Compilers, die für 
weitere Operationen benötigt werden, 
über den Bildschirm nicht zu verarbeiten 
sind. Ebenfalls wird die erweiterte 80-Zei- 
chenkarte (= 64K-Karte) nicht unterstützt, 
so daß man praktisch 64K Speicherraum 
„verschenkt“. 


57 





5. RAM-Disk für Apple Ile mit 
erweiterter 80-Zeichenkarte 


Der hier abgedruckte RAM-Disk-Driver ist 
für einen Apple Ile mit erweiterter 80-Zei- 
chenkarte mit zwei Diskettenlaufwerken 
unter Apple-CP/M 56K konfiguriert. 

Um die Wirkungsweise der RAM-Disk und 
deren Wechselwirkung mit den real exi- 
stierenden Laufwerken zu verdeutlichen, 
ist es erforderlich, auf die CP/M-Module 
BIOS und BDOS näher einzugehen. Auch 
kann dann das Programm an andere CP/ 
M-Versionen angepaßt werden, und der 
Leser ist in der Lage, sein eigenes Disket- 
tenformat zu implementieren. (Theoretisch 
läßt sich der RAM-Disk-Driver auch auf 
einem Apple Ilc mit CP/M-Karte imple- 
mentieren, doch wurde dies nicht ausge- 
testet.) 


5.1. Arbeitsweise des BIOS 


Dies ist, wie schon erwähnt, der hardware- 
abhängige Teil des Betriebssystems. Das 
BIOS kommuniziert mit BDOS oder mit 
einem Benutzerprogramm durch eine 
Sprungtabelle, wodurch 17 definierte 
Funktionen erreicht werden können (Bild 
2). Die Adresse, ab der diese Sprungta- 
belle im Hauptspeicher des Rechners 
steht, ist von der maximalen Speicherka- 
pazität abhängig. Wenn ein Anwenderpro- 
gramm BIOS-Funktionen aufrufen will, 
muß es die Adresse der Sprungtabelle im 
Speicher kennen, um über diese die 
Adresse der selektierten BIOS-Funktion 
zu ermitteln. Das Programm GETBIOS 
berechnet die Einsprungadresse der ge- 
wünschten BIOS-Funktion, indem es die 
Adresse des ersten Sprungvektors (Funk- 
tion WBOOT) ermittelt, die durch den In- 
halt der Speicherstellen 2 und 3 der Page 
0 gegeben ist. Daraus können dann die 
Einsprungadressen aller BIOS-Funktionen 
errechnet werden. 

Von den aufgeführten BIOS-Funktionen 
interessieren uns nur diejenigen, die mit 
den Diskettenoperationen in Verbindung 
stehen, insbesondere die Funktionen 9-14 
und 16, die im folgenden beschrieben 
werden. 


SELDSK 

Diese Funktion aktiviert das vom Benutzer 
spezifizierte Laufwerk. Als Parameter wird 
im C-Register die CP/M-Laufwerksnum- 
mer übergeben: 0O=A, 1=B, ..., 15=P. 
Konnte die Funktion erfolgreich ausgeführt 
werden, wird im HL-Register die Adresse 
des DPH („Disk Parameter Header“), auf 
dessen Bedeutung später eingegangen 
wird, zurückgegeben. Tritt ein Fehler auf, 


58 


GETBIOS 
*%*%* GETBIOS x*x*%* 


GETBIOS berechnet die Adresse einer BIOS-Funktion (1...16) 
Die Nummer der Funktion wird im A-Register Übergeben. 
Das HL-Register liefert die Adresse an das aufrufende 


zurück. 


D19P ORG 19H 


nn) WBOOT EQU PPPPH 
D109 
B1B1 
0192 
0193 
0194 
9107 


DCR A 

MOV D,A 

ADD D 

ADD D 

LHLD WBOOT+1 
MVI D,® 

0109 MOV E,A 

D1DA DAD D 

Dd10B RET 

d1BC END 


GETBIOS.HEX 


:OCH1WMW03D5782822AW1NW1EWW5FIL9CIDI 
: DDDDDDDDDDDDDDDDDDDDDDDDDnnynnnnnn 





so enthält das HL-Register den Wert 
0000H. 


SETTRK 

Hiermit wird die Nummer der Spur ausge- 
wählt (BC-Register), auf die beim näch- 
sten Diskettenzugriff geschrieben oder 
von der gelesen werden soll. 


SETSEC 

Für alle folgenden Zugriffe auf das aktuelle 
Laufwerk wird die gewünschte Sektor- 
nummer (BC-Register) festgelegt. 


SETDMA 

Hier wird die Adresse eines 128-Byte- 
Puffers (BC-Register) übergeben. Alle fol- 
genden Leseoperationen von der aktuel- 
len Diskette schreiben in diesen Bereich, 
alle Schreiboperationen übertragen den 
Inhalt ab der selektierten Pufferadresse 
auf das aktuelle Laufwerk. 


READ 

Lesen eines gewählten Track/Sector von 
der aktuellen Diskette. Nach einem Lese- 
fehler enthält das A-Register den Wert 0, 
sonst 1. 


WRITE 

Schreiben eines gewählten Track/Sector 
aus dem Puffer auf das aktuelle Disketten- 
laufwerk. Es werden die gleichen Parame- 
ter wie bei READ zurückgegeben. 


SECTRAN 
Um die Geschwindigkeit des Diskettenzu- 
griffs zu erhöhen, kann ein logischer Sek- 


; Warmstart-Vektor holen 


‚ Offset in das DE-Reg. 
‚ Adresse = Offset + Warmboot 
; Zurück 


tor in einen physikalischen Sektor über- 
setzt werden. Standard-CP/M benutzt ei- 
nen „Interleaving-Faktor“ von sechs, d.h. 
nach zwei logisch aufeinanderfolgenden 
Sektoren werden sechs physikalische 
Sektoren übersprungen. Die SECTRAN- 
Funktion wird bei Apple-CP/M nicht be- 
nutzt, was bedeutet, daß keine physikali- 
schen Sektoren übersprungen werden 
sollen. 


Dem BIOS wird noch ein Satz von Tabel- 
len vorangestellt, die wichtige Parameter 
für die angeschlossenen Diskettenlauf- 
werke beinhalten. Für jedes Diskettenlauf- 
werk wird ein DPH (Disk Parameter Hea- 
der) angelegt, der 16 Bytes einnimmt. Der 
schematische Aufbau eines DPH ist in 
Bild 3 dargestellt. 

Die ersten 2 Bytes geben die Adresse 
eines Vektors für die Übersetzung von 
logischen in physikalische Sektoren für 
das Laufwerk an. Ist die Adresse 0000H, 
so findet keine Übersetzung statt (Apple- 
CP/M). 

Die nächsten 6 Bytes sind für das BDOS 
reserviert und dienen als Scratchspace. 
Die 2 folgenden Bytes geben eine Adres- 
se an, die einen Arbeitsbereich von 128 
Bytes definiert, den das BDOS für Directo- 
ry-Operationen benötigt. Es wird für jedes 
Laufwerk der gleiche Directory-Puffer ver- 
wendet. 

Die 2 folgenden Bytes stellen ebenfalls 
einen Zeiger dar, der auf den sog. DPB 
(Disk Parameter Block) zeigt. Dieser Block 
enthält die eigentliche Diskettenbeschrei- 
bung. Laufwerke mit gleichen Eigenschaf- 
ten sollten denselben DPB benutzen. 


Peeker 6/85 


———————————_————— 





Byte 12 und 13 geben die Adresse der 
Prüfsummentabelle an. Die letzte 16-Bit- 
Zahl liefert die Adresse des Diskettenbele- 
gungsplans im Speicher, der ebenfalls 
vom BDOS verwaltet wird. 

Apple-CP/M 56K legt 6 DPHs ab Adresse 
DA33H und 1 DPB ab Adresse DAYSH an. 
Um den Aufbau des DPBs zuverstehen, 
betrachte man Bild 4. Hier ist der Aufbau 
eines DPBs dargestellt. 

SPT gibt die Anzahl der Spuren auf der 
Diskette an. BSH und BLM bestimmen 
zusammen die Blockgröße auf der Disket- 
te, wobei sich BSH berechnet zu 

log2 (Blockgröße/128). Die Blockgröße ist 
ein Vielfaches von 128, bei den Apple- 
Disketten 1024 Bytes. BLM ist die soge- 
nannte „Blockmask“ diesichaus2 f (BSH- 
1) ergibt. EXM ist die Extensionsmaske 
und hängt von der Blockgröße ab. Der 
Wert von EXM kann aus Bild 6 bestimmt 
werden. DSM bestimmt die totale Spei- 
cherkapaziät der Diskette, wobei 
(DSM +1) : Blockgröße die gesamte Ka- 
pazität der Diskette ohne Systemspuren 
ergibt. DRM legt die Anzahl der möglichen 
Directory-Einträge fest. Hier muß die ma- 
ximale Anzahl -1 eingetragen werden. 
CKS gibt die Größe des Directory-Prüf- 
vektors an: CKS = (DRM+1) /4. 

Auch das Directory selbst belegt Spei- 
cherplatz auf der Diskette. ALO und AL1 
geben die dafür reservierten Blöcke auf 
der Diskette an. Jeder Eintrag benötigt 32 
Bytes. Bei 48 möglichen Directory-Einträ- 
gen auf der Diskette ergeben sich 48 : 32 
= 1536 Bytes, was bei einer Blockgröße 
von 1024 Bytes zwei Blöcke in Anspruch 
nimmt. Diese Blöcke werden durch Set- 
zen eines Bits in ALO und AL1 markiert, 
und zwar beginnend mit dem höherwerii- 
gen Bit von ALO. Somit erhalten wir bei 
den angenommenen Größen für ALO $CO 
und für AL1 $00. 

Die letzten 2 Bytes, die mit OFF bezeich- 
net sind, enthalten die Anzahl der System- 
spuren. Apple-CP/M reserviert hier drei 
(0..2). 


5.2. CP/M-Patch 


Um eine RAM-Disk zu installieren, muß 
zunächst eine geeignete Stelle gefunden 
werden, um die RWTS-Routine zu linken. 

Soll ein bestimmter Track/Sector durch 
das BIOS gelesen oder geschrieben wer- 
den, wird zu einer 6502-Routine ab $0OEO3 
verzweigt. Dort kann dann ein Sprung zur 
eigenen RWTS erfolgen. Bevor jedoch die 
Routine ausgeführt werden kann, muß das 
BIOS mehrere erforderliche Parameter 
berechnen. 


Peeker 6/85 





XLT SCRATCH 
2 Bytes 6 Bytes 
Bild 3 





PN 24 


2Bytess 2Bytess 2Bytes 2 Bytes 





ser [ss [sun [san [os [omm [are [acı Ters [or 


Bild 4 


1800 


0800 2800 


Bild 5 


DSM 
255 


Block- 
größe 


DSM 
<208 


Bild 6 


Die gewählte Laufwerksnummer wird in 
$03E4, der angesprochene Slot, in dem 
der zugeordnete Disk-Controller installiert 
ist, wird mit $10 multipliziert in $03E6 ab- 
gelegt. Die Adresse $03EB bestimmt, ob 
gelesen oder geschrieben werden soll, 
wobei 1 Schreiben und 2 Lesen bedeutet. 
Es wird immer auf 2 CP/M-Sektoren (2 & 
128 Bytes) auf einmal zugegriffen. Daraus 
folgt, daß der DMA-Puffer von 128 Bytes 
nicht sofort auf Diskette geschrieben wird, 
sondern erst der 256 Bytes große Disket- 
tensektor in einen weiteren Puffer ab 
$0800 gelesen wird. Erst danach kopiert 
CP/M den Inhalt des DMA-Puffers entwe- 
der in die erste oder zweite Hälfte des 
Zwischenpuffers. Wenn auf einen anderen 
Diskettensektor zugegriffen werden soll, 
wird der Zwischenpuffer bedingungslos 
auf Diskette gebracht. 

Die Spurnummer wird in $03E0, die Num- 
mer des Diskettensektors in $03E1 über- 
geben. 

Von Bedeutung sind das Errorflag 
($03EA), das angibt, ob die Diskettenope- 
ration fehlerfrei abgelaufen ist (0 = kein 
Fehler), und die Speicherstelle DEAEH, 
welche die Nummer des momentan unter 
CP/M aktiven Laufwerks angibt (A=0, 
B=1, C=2...). 


A800 ı D000 DOOO 








E000 FO0O 


FEFF 


B/FF IDFFF DFFF EFFF 0300 
Bank 2 Bank 1 Bank 1 
oben oben unten 


5.3. CP/M-RAM-Disk-Driver 


Der RAM-Disk-Driver besteht aus zwei 
Teilen. Der erste Teil befindet sich im 
AUXZP-Bereich auf der erweiterten 80- 
Zeichenkarte ab Adresse $FFOO und be- 
legt etwa eine Speicherseite. Die imaginä- 
ren Spuren der RAM-Disk (Bild 5) mit den 
Nummern 0-10 werden im Zusatzspeicher 
im AUXMAIN-47,5K-Bereich ab Adresse 
$0800-$B7FF abgebildet. Die Spuren 11 
und 12 entsprechen den beiden Banks der 
Language-Card ($DO00-$DFFF) im 
AUXZP-Bereich des Zusatzspeichers. 
Spur 13 und 14 korrespondieren mit mit 
der gemeinsamen Bank der Language- 
Card im Zusatzspeicher ($E000-$FEFF). 
Spur 14, Diskettensektor 15 wird durch die 
Seite drei ($0300-$03FF) des AUXMAIN- 
47,5K-Bereichs repräsentiert. Der eigent- 
liche Driver kann vom AUXZP-Bereich des 
Zusatzspeichers Daten aus den imaginä- 
ren Spuren 0..14 sowohl in den Zwischen- 
puffer ab Adresse $0800 auf der Hauptpla- 
tine schreiben als auch vom Zwischenpuf- 
fer lesen und in den Zusatzspeicher brin- 
gen, da sich der Driver in jedem Fall selber 
lesen kann. 


Für die Spur 15 bleibt nur noch die Bank 1 
der Language-Card auf der Hauptplatine 
im Bereich $DO00-$DFFF übrig, da nur 
Bank 2 von CP/M selbst benutzt wird. Um 
von dieser Spur in den Zwischenpuffer zu 
lesen, muß sich ein weiterer Driver im 
„ungebankten“ Bereich des Hauptspei- 
chers befinden. Der zweite Driver liegt ab 
FC70OH (= $0C70) in einem von CP/M 
nicht benötigten Bereich. 


59 


a EEE EEE TEE nn nn 





5.4. Installation des RAM-Disk-Drivers 


Zunächst sind das Applesoft-Programm 
RAMDISK.INIT.DOS und die drei 6502- 
Programme AUXDRIVER, MOVEDRIVER 
und RAMDISK.FORMATTER zu _ er- 
stellen. 

MOVEDRIVER verschiebt lediglich den 
Objekt-Code, der ab Adresse $FFOO lauf- 
fähig sein muß, vom Hauptspeicher in den 
Zusatzspeicher. 

Der RAMDISK.FORMATTER _initialisiert 
den gesamten Speicherbereich, den die 
RAM-Disk verwendet, mit dem Wert $E5. 
Als viertes Modul muß noch das Pro- 
gramm RDSKINIT.COM auf der CP/M- 
Diskette vorhanden sein. Es ist in 8080- 
Assembler geschrieben, da kein Z80-As- 
sembler zur Verfügung stand. 
RDSKINIT.COM patcht das CP/M an der 
Stelle $0E03. Hier wird ein Sprung zur 
eigenen RWTS-Routine installiert. Des 
weiteren muß die Anzahl der angeschlos- 
senen Diskettenlaufwerke erhöht werden, 
indem in den Speicherplatz $03B8 eine 3 
eingetragen wird, so daß die RAM-Disk 
unter Laufwerk „C“ angesprochen wer- 
den kann. Außerdem wird ein neuer DPB 
für die RAM-Disk initialisiert und die 
Adresse in den DPH eingetragen. Bleibt 
nur noch das „Poken“ des Drivers im 
Hauptspeicher ab Adresse $0C70. Der 
Driver prüft zuerst, ob das angeschlosse- 
ne Laufwerk die RAM-Disk ist. Wenn ja, 
wird der ALTZPAUX-Bereich selektiert 
und die Language-Card schreib- und lese- 
fähig gemacht und zum Driver im Zusatz- 
speicher gesprungen. Die Rückkehr er- 
folgt entweder über RTSDRIVER, wenn 
auf die Spuren 0...14 zugegriffen wurde, 
oder durch einen Sprung nach DRIVER2 
vom Driver im Zusatzspeicher (Zugriff auf 
Spur 15). Alle Transferparameter, die AC- 
CESS 2 benötigt, sind bereits errechnet, 
müssen jedoch vorher von der AUX-Zero- 
Page in die MAIN-Zero-Page kopiert wer- 
den. Am Ende wird das RWTS-Errorflag 
auf O gesetzt, so daß kein BDOS-Error 
auftreten kann. Der Return zum Z80 wird 
über die oben beschriebene Schnittstelle 
ausgeführt. 

Wurde ein physisch existierendes Disket- 
tenlaufwerk angesprochen, wird die nor- 
male RWTS-Routine ab Adresse $0E10 
aufgerufen und zum Z80 zurückgekehrt. 


5.5 Starten des RAM-Disk-Drivers 


Der RAM-Disk-Driver wird von DOS 3.3 
aus gestartet. Booten Sie DOS und starten 
das Programm RAMDISK.INIT.DOS. Da- 
nach können Sie wie gewohnt CP/M boo- 


60 


RDSKINIT 

; *#%*%* RDSKINIT x%*%* 

‚ Installiert CP/M-Patch für RAM-Disk 
D190 ORG ®1P@H 
FC79 = PATCHADR EQU ÖFC7OH ‚Hier CP/M-Patch installieren 
F3B8 = DISKNR EQU @F3B8H ‚Anzahl der installierten Laufwerke 
FEß3 = RWTSPATCH EQU ®FEB3H 
DA83 = DPH EQU ®DA83H 
DA5D = DPHPATCH EQU ®DA5DH 

; Ändern des DPB-Zeigers im DPH für Disk C 
d100 2183DA LXI H,DPH 
0103 225DDA SHLD DPHPATCH 

; Neuen DPB für RAM-Disk "C" initialisieren 
D106 1183DA LXI D,DPH 
0109 P19EPL LXI B,DPB 
DlBC 260F MVI H,15 
B1DE 7C TRANSFER MOV A,H 
Ö10F B7 ORA A 
B11® CAI1BPOL JZ FERTIG 
113 25 DCR H 
0114 DA LDAX B 
0115 12 STAX D 
116 93 INX B 
0117 13 INX D 
B118 C3PEP1 JMP TRANSFER 
P11B 11P3FE FERTIG LXI D,RWTSPATCH 
ÖlIE 3EAC MVI A,®®ACH ; JMP START 
0129 12 STAX D 
0121 13 INX D 
0122 3E7® MVI A,@®070H 
0124 12 STAX D 
0125 13 INX D 
0126 3EPC MVI A,@P@CH 
0128 12 STAX D 
0129 11B8F3 LXI D,DISKNR 
B12C 3E93 MVI A,®3 ; 3 Laufwerke A,B,C 
Ö12E 12 STAX D 
Öl12F 1170FC LXI D, PATCHADR 
0132 914401 LXI B,OPCODE 
0135 2659 MVI H,ENDOP-OPCODE 
0137 7C NEXT MOV A,H 
0138 B7 ORA A 
0139 CAPPOB JZ v99P 
Ö13C 25 DCR H 
B13D PA LDAX B 
Ö13E 12 STAX D 
Ö13F 93 INX B 
0149 13 INX D 
0141 C33701 JMP NEXT 
0144 AD83SC® OPCODE DB PADH,83H,0COH ; LDA $c083 
0147 ADAEFE DB @ADH,PAEH,PFEH ; LDA TMPDSK 
B14A C9P2 DB ®C9YH, 92H > CMP #92 
B1AC FODA DB @F@H,PAH BEQ RAMDISK 
Ö1AE 98 DB 98H PHP 
Ö14AF 78 DB 78H : SEI 
0150 20100E DB 2@H, 10H, ®EH i JSR RWTS 
0153 AD81CP DB ®ADH, 81H, dCOH ; LDA $cQ81l 
0156 28 DB 28H PLP 
0157 6 DB 6®H ; RTS 
0158 8DP9CH DB 8DH, 9H, BCOH ‚ RAMDISK STA ALTZPAUX 
015B AD83CP® DB QADH,83H,ÖCOH ; LDA $cP83 
B15E AD8S3CH DB PADH, 83H , ÖCÖH t LDA $c983 
B161 ACQOFF DB ACH, P@H,, ÖFFH JMP DRIVER 
0164 8DPSCh DB 8DH, ß8H, BCQH ; RTSDRIVER STA ALTZPMAIN 
®167 AD81C® DB PADH, 81H, PCOH LDA $co81 
D16A 69 DB 6ßH RTS 
Ö16B A5CE DB PA5H,dCEH ; DRIVER2 LDA IND1 
B16D A6CF DB PA6H, ÖCFH LDX INDI+1 
B16F AAP6 DB PA4H,P6 LDY IND2 
B171 SCCBHC DB ®8CH,PCBH,PÖCH ; STY TMP 
0174 A497 DB QA4H,97 LDY IND2+1 
0176 8DBSCH DB @8DH, 8, @COH STA ALTZPMAIN 
0179 85CE DB 85H, ÖCEH STA IND1 
017B 86CF DB ®86H,,ÖCFH STX INDI+1 
017D 8497 DB 9844,07 ; STY IND2+1 
B1T7F ADCBGC DB ®ADH, ÖC8H, ÖCH : LDA TMP 
0182 8596 DB 85H, 06 : STA IND2 
0184 ADSBC® DB PADH , 8BH, ÖCQH x LDA $CP8B 


Peeker 6/85 








ten und RDSKINIT.COM starten, wenn Sie 
die RAM-DISK aktivieren wollen. 

Der Driver im Hauptspeicher wird bei ei- 
nem CP/M-Warmstart nicht zerstört. Des- 
halb muß das Programm RDSKINIT.COM 
nur nach einem Kaltstart wieder gestartet 
werden. Alle Daten auf der RAM-Disk und 
der Driver im Zusatzspeicher bleiben er- 
halten, bis Sie den Rechner ausschalten. 


5.6 Anpassen des RAM-Disk-Drivers an 
andere CP/M-Versionen 


Der RAM-Disk-Driver ist für Apple-CP/M 
Version 2.20 56K mit zwei Diskettenlauf- 
werken konfiguriert. Wenn mehr als zwei 
Laufwerke angeschlossen sind, muß der 
Wert in Speicherstelle F3B8H entspre- 
chend geändert und der Zeiger auf den 
DPB im der RAM-Disk zugeordneten DPH 
angepaßt werden. 

Der DPB für die RAM-Disk ist so intiali- 
siert, daß 32 Directory-Einträge möglich 
sind. Daraus ergibt sich eine Netto-Spei- 
cherkapazität von 63K (keine Systemspu- 
ren). Der Benutzer kann in den DPB ande- 
re Parameter eintragen, um das Pseudo- 
Laufwerk seinen eigenen Bedürfnissen 
anzupassen. 


5.7. Zusammenfassung 


Die Peeker-Sammeldiskette enthält fol- 
gende RAM-Disk-Programme: 

— RAMDISK.INIT.DOS (Basic) 

— T.AUXDRIVER (Source) 

— AUXDRIVER (6502) 

— T.MOVEDRIVER (Source) 

— MOVEDRIVER (6502) 

— T.RAMDISK.FORMATTER (Source) 

— RAMDISK.FORMATTER (6502) 

Das Z80-Programm RDSKINIT.COM so- 
wie die Demos SWITCHDEMO und GET- 
BIOS befinden sich nicht auf der Sammel- 
disk. 

Die RAM-Disk läßt sich wie folgt instal- 
lieren: 

1. Booten von DOS 3.3 

2. Von Peeker-Sammeldisk mit 

RUN RAMDISK.INIT.DOS Return 

Driver auf 64K-Karte schieben. 

3. Booten von CP/M 

4. Mit RDSKINIT Return 

Driver anschließen. 

5. Danach RAM-Disk mit 

C: Return 

ansprechen. 


Peeker 6/85 


0187 
D18A 
B18C 
d18E 
d199 
0191 
0193 
0195 
0198 
d19B 
B19C 


AD8BCP® 
ABPB® 
BICE 
9196 
88 
DOF9 
A9OP 
8DEA®3 
AD81C® 
69 

nr) 


DADH ,8BH , ÖCÖH 
DAQH, BP 

®B1H, PCEH 
091H, 6 

088H 
ÖD®H ‚, ÖF9YH 
DA9H,, BB 
Ö8DH , BEAH,, 03H 
DADH,, 81H, BCOH 
D60H 

nr) 


;‚ ACCESS2 
; NEXT LDA (IND1),Y 


D19D FF ENDOP ÖFFH 
D19E 2909 DPB 20H , 00 
D1AB 9307 03,07 
d1A2 BB W) 
D1A3 3F@® 3FH, d® 
DlA5 1FßB 1FH, 09 
D1A7 80 80H 
D1A8 99 nn) 
D1A9 BOB D0 , 00 
DlAB BOHB d0 , 00 
DL1AD 


RDSKINIT.HEX 


: 10010009 
: 10011999 
:10012909 
: 10013009 
: 10014009 
:10015999 
: 10016009 
: 10817009 
: 10018000 
: 10019909 
:ßDO1AQB® 





Hinweis zum Erstellen der 8080- 
Assemblerprogramme unter CP/M 


Dieser Hinweis ist für diejenigen Leser ge- 
dacht, die nicht mit den abgedruckten 
8080-Quelltexten in Verbindung mit dem 
CP/M-Assembler arbeiten möchten. Die 
Programme können direkt mit dem DDT 
(Dynamic Debbuging Tool) als Hexdump 


eingegeben werden. Starten Sie von Ihrer 
CP/M-Diskette des DDT (DDT und Return 


eingeben). Es meldet sich mit 

DDT VERS 2.2 

Danach geben Sie „S0100“ ein. Es folgt 
die Meldung „O100 01“. Hierbei bedeutet 
„0100 die momentan angesprochene 
Speicherstelle und „O1“ deren Inhalt. 
Jetzt kann der entsprechende Hexdump -— 
jeweils ein Byte, gefolgt von der Return- 
Taste — eingegeben werden. 

Der „S-Modus“ wird nach abgeschlosse- 
ner Eingabe des Hexdumps mit „.“ been- 
det. Verlassen Sie den DDT mit Control-C. 
Nun muß das erstellte Programm noch ab- 
gespeichert werden. Dazu tippen Sie 
„SAVE 1 Name.COM“. 


LDA $CQ8B 
LDY #9 


STA (IND2),Y 
DEY 

BNE NEXT 

LDA #9 

STA ERFL 

LDA $co8l 
RTS 

DB 9 


‚Sektoren pro Spur 
‚BSH/BLM 

;EXM 

‚DSM 

; DRM 

;AL® 

‚AL1l 

; CKS 

‚OFF 


2183DA225DDA1183DAP19EB1269F7CB7A2 
CA1BP1250A120313C30Eß111P3FEZEACZA 
12133E7012133EPC1211B8F33E0312115B 
T7OFCO1440126597CB7CAB000250A12034D 
1303370 1AD83CBADAEFECIG2FOWANET78L13 
20 10PEAD81CH286B8DPICHADSSCHADEZ3T5 
COACHÖFFEDPSCHADBSICHSBASCEAGCFA455 
BESCCEÖCAAWTEDPSCHB5SCESECFBANTAD3I 
C8EBCE5PEADSBCHADSBCHANNGBICEIINGGA 
88DÖFYAYIBBSDEABZADBSLCHSHNÄFF2DBDTE 
DS07D03FHB1FONSBHDDDDDDDDDEADnn‘‘ 


61 


 —————————————————————————————————— 





RAMDISK.INIT.DOS 


100 REM RAMDISK.INIT.DOS 
11® HOME :D$ = CHR$ (4) 


120 PRINT "CP/M-RAMDISK-DRIVER WIRD INSTALLIERT ... 
130 PRINT D$"BLOAD AUXDRIVER, A$9909" 

14® PRINT D$"BRUN MOVEDRIVER, A$9509" 

150 PRINT D$"BRUN RAMDISK.FORMATTER, A$9P9N" 


AUXDRIVER 


* 

* AUXDRIVER 
* AUXZP-Berei 
E 2 


* 
ORG 


ovo_ınıV uw mDd 


* 
BANK2 EQU 
BANK1 EQU 
RAMRDA EQU 
RAMRDM EQU 
RMWRTA EQU 
RMWRTM EQU 
. 
RW EQU 
BUFF EQU 
ERFL EQU 
TRACK EQU 
SECTOR EQU 
” 
IND1 EQU 
IND2 EQU 
. 
START LDA 
STA 
STA 
LDA 


Spurnummer 
STA 
Adresse im 


JSR 
LDA 


Kein Fehler 


BNE 
STX 
JMP 
PHA 
JSR 
LDA 
ROR 
BCS 
PLA 
STA 
STA 
STA 
LDA 
STA 


ACCESS LDY 
LDA 
CMP 
BNE 
STA 
STA 
JMP 
LDA 
STA 
DEY 
BNE 


KRRKRFKTEKETTTTETT ET HE I 


%* 


%* 
ch $FFOD x 
* 


KRRKRKERTERTETTET TEE I E K  % 


$FFOQ 


$C983 
$cQ8B 
$c0p3 
$c992 
$c005 
$C094 


$03EB 
$0800 
$03EA 
$O3EB 
$O3EL 


$CE 
$06 


+00 
INDl 
IND2 
TRACK 


in AUXZP ablegen 
STRACK 
Speicher berechnen 


CALCADR 
ADR+1 


aufgetreten 


OKAY 
ERFL 
RETURNF ‚Fehler! 


SELECT ; LC-Bank 

RW ;R/W? 

A 

TOBUFF ‚Read 
‚Adreßbyte 

RAMRDM ;RDMAIN 

RMWRTA ;WRAUX 

IND2+1 ‚Adreßbyte 

#>BUFF ;Pufferadresse 

INDI1+1 


#0 ‚256 Bytes 
STRACK Ä 

#15 ‚Spur 15? 
NEXT ‚nein 
RAMRDM ;RDMAIN 
RMWRTM ;WRMAIN 
DRIVER2 ;Kopieren 
(IND1),Y 

(IND2),Y 


NEXT ‚fertig? 


* Normaler Return 


LDA 
STA 
RETURNF STA 
STA 
JMP 


62 


+00 

ERFL ;CP/M-Fehler 
RAMRDM ;RDMAIN 
RMWRTM ;WRMAIN 
RTSDRIV ‚zurück 





FFE3: 9 


228 Bytes 





TOBUFF PLA ‚Adreßbyte 
STA RAMRDA ;RDAUX 
STA RMWRTM ;WRMAIN 
STA INDIl+1 ;‚Adreßbyte 
LDA #+>BUFF ;Pufferadresse 
STA IND2+1 ‚für Kopieren 
JMP ACCESS ;Kopieren 

* 

* CALCADR berechnet die Speicher-Page, 

* die dem Track/Sector entspricht. 

* 

CALCADR LDX #1 
LDA #9 
STA ADR ;LSB immer ® 


LDA TRACK 
CMP #11 
BPL LABIl 
ASL 

ASL 

ASL 

ASL 

ORA #98 
CLC 

ADC SECTOR 
STA ADR+1 
RTS 


CMP #15 
BEQ TRI15 
CMP #14 
BEQ TRI14 
CMP #13 
BEQ TRI3 
CMP #12 
BEQ TRI2 
CMP #11 
BNE ERRI1 ‚unzulässig 
STX ADR ;‚Bankl merken 
LDA +#$D® 
JMP EXITl 
LDA +#$Eß 
JMP EXITl 
LDA SECTOR 
CMP #$@F 
BNE LAB2 
LDA #$93 
JMP EXIT2 
LDA #$F® 
JMP EXITl 


LDA #998 ;Fehler 
STA ADR 

STA ADR+1 ;‚Adresse= 
RTS ‚zurück 


HEX 99 
HEX ®® 


* Select setzt Softswitch für 
* Banking der Language-Card 


SELECT LDA ADR+1 
AND #Z11119999 
CMP #$D® 
BEQ LCCARD 
RTS 


LDA 

BEQ 

LDA 

STA ‚Bankl-Flag 
LDA ;R/W Bankl 
LDA 

RTS 


LDA ;R/W Bank2 
LDA 
RTS 


* 

RTSDRIV EQU 
DRIVER2 EQU 
STRACK HEX 


Peeker 6/85 


I N 


MOVEDRIVER 


9533: @1l 


52 Bytes 


oo oı9VDum Au Dr 


KERFKFKFKKKFRRKKRFERKKRKHF KK FI THII KR 
%* * 
* MOVEDRIVER AUX $FFO® x 
* * 
KRRFKKKRKFRKKRRRKKFRKHK FF KK RI 


ORG $9599 


EQU $09 
EQU $92 
EQU $cop8 


STA ALTZP+1 
LDA #<SADR 
STA START 

LDA #>SADR 
STA START+1 
LDA #<DADR 
STA ZIEL 

LDA #>DADR 
STA ZIEL+1 


;‚AUXZP 


LDA $CP8B 
LDA $CP8B 
LDX BLKS 

LDY #9 

LDA (START),Y 
STA (ZIEL),Y 
DEY 

BNE NEXT 

INC START+1 
INC ZIEL+l 
DEX 

BNE NEXT 

STA ALTZP 
LDA $co8sl 
RTS 


;MAINZP 
‚Read ROM 


EQU $9909 


EQU $FFOd 
HEX @1 


RAMDISK.FORMATTER 


Peeker 6/85 


ovo_nsoVourhumdHm 


KRRFFKFRFKÄKFERKFRKKFH KK FT FE KR 
* 

* RAMDISK.FORMATTER 
x 

* D300-03FF 

* D800-BFFF 

* DO00-DFFF x*2 

* DO00-DFFF MAIN 

* Eßßß-FEFF 

* 
KRAKFKRKKRKRKKRKKRFKFEKKE KK KT KIA FI KU 
%* 

BANK2 EQU $cp83 

BANKl EQU $co8sB 

ALTZPM EQU $cp98 

ALTZPA EQU $c009 

RMWRTA EQU $c005 

RMWRTM EQU $cp94 

DADR EQU $CE 

* 


Pe De 


ORG $9999 
0BJ $9009 
* 
*AUXMAIN -—- B800-BFFF 
* 
STA RMWRTA 
LDA #98 
STA DADR+1 
LDA #9® 
STA DADR 
LDX #184 
JSR INIT 
* 
*xAUXMAIN -— B309-Q3FF 
x 





;‚Bankl R/W 


‚256 Bytes 


9066: 
9968: 
906A: 
906C: 
906D: 
9BEF: 
9971: 
9072: 
9974: 


117 Bytes 


AD 
A9 
9 
88 
Dp 
E6 
CA 
Dp 
6P 


LDA #93 
STA DADR+1 
LDA #9p® 
STA DADR 
LDX #1 
JSR INIT 
%* 
*LC-BANKl -—- DOBB-DFFF/MAIN 
%* 
LDA BANKl 
LDA BANKl 
LDA #$DP 
STA DADR+1 
LDA #9® 
STA DADR 
LDX #16 
JSR INIT 
* 
#*LC-BANKl,2 —- DOBB-DFFF/AUX 
%* 
LDA BANKIl 
LDA BANKl 
JSR INITB 
LDA BANK2 
LDA BANK2 
STA ALTZPA 
LDA #$D® 
STA DADR+1 
LDA #$09 
STA DADR 
LDX #16 
JSR INIT 
%* 
*COMMON LC -—- EßPßß-FEFF 
* 
LDA #$Eß 
STA DADR+1 
LDA #$09 
STA DADR 
LDX #31 
JSR INIT 
STA RMWRTM 
LDA $cg8l 
STA ALTZPM 
RTS 


‚Read ROM 


* Init mit $E5, Anzahl der 256-Byte-Blöcke 
* im X-Register 


INIT LDY #9 
LDA #$E5 
NEXT STA (DADR),Y 
DEY 
BNE NEXT 
INC DADR+1 
DEX 
BNE NEXT 
RTS 


Der nächste Peeker 
Heft 7/1985 


erscheint am 
24.6. 1985 








63 














ajain 
ajain 
sleinjainiaje 
ujeln) /njaim 
alalinjainimjm 
ajain 
alaim 
















Solitaire ist ein Spiel, bei dem es darum 
geht, durch Überspringen von Steinen mit 
anderen Steinen das Spielfeld bis auf ei- 
nen zu leeren. Dazu ist anfänglich die mitt- 
lere Position auf dem Spielfeld unbesetzt. 
Ein Stein darf nur springen, wenn direkt 
links, rechts, über oder unter ihm ein Stein 
steht und die übernächste Position in die- 
ser Richtung unbesetzt ist. Der Stein 
springt dann auf den freien Platz, wobei 
der übersprungene Stein entfernt wird. 
Nach einigen Spielzügen können die ver- 
bleibenden Steine so weit entfernt sein, 
daß sie sich nicht mehr überspringen kön- 
nen. Genau hier liegt die Schwierigkeit 
von Solitaire. 


Das vorliegende Programm SOLITAIRE 
versucht dafür eine Lösung zu finden. Sy- 
stematisch führt es mögliche Sprünge in 
der Reihenfolge links, oben, rechts oder 
unten aus. Gerät es dabei in eine Sack- 
gasse, so macht es den letzten Zug rück- 
gängig und versucht eine andere Möglich- 
keit. Hält man diese Systematik ein, kann 
man sicher sein, einen erfolgreichen 
Spielverlauf zu berechnen. Diese Vorge- 
hensweise des systematischen Program- 
mierens wurde in CHIP Special Il als 
„Backtracking“ beschrieben, wobei Pro- 
gramme für 6800 und den TRS 80 vorge- 
stellt wurden. 

Auf der Suche nach der Lösung des Soli- 
taire-Problems ist der einzelne Suchschritt 


64 


von Stefan Maas 


SOLITAIRE 






"TI. 
_"I1TL 
"TTLLLL 
"TITEL 
TTILLL 
IT. 

"TT 











undwiemaneslöst 


relativ einfach (Die Zeilenzahlen beziehen 
sich auf das Applesoft-Programm SOLI- 
TAIRE): 


— Nach der Festlegung der Grundstellung 
(Zeile 160-165) beginnt jeder Versuch 
beim ersten Stein unten links auf dem 
Spielbrett. Es werden die Sprungmöglich- 
keiten in der Reihenfolge links, oben, 
rechts oder unten geprüft und ausgewertet 
(Zeile 205-335), gegebenenfalls auch 
ausgeführt (Zeile 355-420). 

— Gibt es keine weiteren Zugmöglichkei- 
ten mehr und ist nicht genau ein Stein im 
Zentrum des Spielfeldes stehengeblieben, 
so ist das Spiel in eine Sackgasse geraten. 
Der letzte Zug wird nun rückgängig ge- 
macht (Zeile 440-460) und nach anderen 
Zugmöglichkeiten gesucht. 

— Die Lösung ist gefunden worden: Ein 
Stein ist genau im Zentrum des Spielfel- 
des stehengeblieben. (Zeile 405-410: Es 
sind X = 31 Züge gemacht worden und 
der letzte Spielstein besetzt das zentrale 
Spielfeld A(60) = 1.) 

Die Ausgabe der Lösung erfolgt nun ent- 
weder über den Drucker (angepaßt an den 
Drucker Epson MX-82F/T Typ Ill; anson- 
sten sind in den Zeilen 610-800 kleine 
Modifikationen notwendig) oder aber über 
den Bildschirm (Zeile 560-590). 


Für die Grafik sorgen die Routinen in den 
Zeilen 480-555. 


Da das Programm in Applesoft für die LöÖ- 
sung 14 Std. und etwa 35 Min. benötigt, 
besteht die Möglichkeit der Spielstandab- 
speicherung (Zeile 400, 820-825), die mit 
Ctrl-Q aufgerufen wird. Die Zahlenwerte 
der einzelnen Brettpositionen können der 
Tabelle 1 entnommen werden. 

Zusätzlich ist auch noch die Assem- 
blerroutine SOLITAIRE.B eingebaut (Auf- 
ruf in Zeile 945-960), welche die Lösung 
in 41 Sekunden findet (eine Spielstandab- 
speicherung ist hierbei nicht möglich) und 
vom Menü des Applesoft-Programms aus 
gestartet werden kann. Die Arbeitsweise 
des Binär-Programms ist mit der des Ba- 
sic-Programms identisch. 


Zusatzinformation: Vor der Eingabe und 
dem späteren Aufruf des Applesoft-Pro- 
gramms sollte man die folgenden Parame- 
ter auf der Zero-Page ändern, da es we- 
gen der Länge im HGR-Speicher liegt: 
$0067 = $00, $0068 = $40, $3FFF = $00 
bzw. von Applesoft aus: POKE 103,0: 
POKE 104,64: POKE 16383,0. Das Pro- 
gramm SOLITAIRE.START führt diese 
POKESs aus und ruft dann das eigentliche 
Programm SOLITAIRE auf. 

Der Binärfile ist von $8000-$8219 abzu- 
speichern (BSAVE SOLITAIRE.B, 
A$8000, L$021A). 

Ansonsten erklärt sich das Programm 
durch sein Menü von selbst. 


Peeker 6/85 


a" 





SOLITAIRE.START 


1® POKE 103,9: POKE 194,64: POKE 16383, ® 
2® PRINT CHR$ (4);"RUN SOLITAIRE"" 


SOLITAIRE 


100 REM Bssslalalslslalalalalalalalal RR 

105 REM * * 

11® REM * SOLITAIRE - von Stefan Maas, MS den 25.19.84 

115 REM « * 

128 REM = BBssaassseas BEER 

125 REM 

130 REM 

14® TEXT : HOME : DIM A(129),B(31),C(31):D$(1) = "LINKS ": 
D$(2) = "HOCH ":D$(3) = "RECHTS":D$(4) = "RUNTER": 
GOTO 845 


REM Festlegung der Grundstellung 


FOR I = 1 TO 32: READ A:A(A) = 1: NEXT I: RESTORE 
DATA 26,27,28,37,38,39,46,47,48,49,50,51,52,57,58,59, 
61,62,63,68,69,70,71,72,73,74,81,82,83,92,953,94 

IF P2 = 4 THEN GOTO 565 

IF P3 = 2 THEN GOTO 825 

IF P2 = 1 THEN GOTO 619 


REM Ausführung der Züge 
REM 1,2,3,4 = 1.,o.,r.,u. Bewegung in B/C(1-31) abgesp. 


Ei — 

I= I+ 1: IF I > 94 THEN GOTO 449: REM kein Zug mehr 
möglich 

IF A(I) = ® THEN GOTO 21® 


REM Bewegung nach links 

IFA(I-1) =9®B0RA(I-2) <>BORI=46 OR I = 47 

OR I = 57 OR I = 58 OR I = 68 OR I = 69 THEN GOTO 269 
= I - 2:B = 1: GOSUB 335 

REM Bewegung nach oben 


IF A(I+11l) =® ORA(I +22) <>PB OR I > 89 ANDI < 
84 OR I > 91 AND I < 95 THEN GOTO 285 
= I + 22:B = 2: GOSUB 335 


REM Bewegung nach rechts 

IF A(I+1) = 0ORA(I+2) <>BORI=510R I = 5 

OR I = 62 OR I = 63 OR I = 73 OR I = 74 THEN GOTO 319 
= I + 2:B = 3: GOSUB 335 


REM Bewegung nach unten 


IF A(I- 11) OR A(I- 22) <>BOR I > RS AND I < 
29 OR I > 36 I < 48 THEN GOTO 219 
GOSUB 335: GOTO 219 


REM Auswertung der Versuche 


IFA=240RA=250RA=290RA=3BORA= 35 0RA 
= 36 ORA=4ß ORA = 41 0ORA = 79 0RA = 89 ORA = 84 
OR A = 85 ORA = 9ß OR A = 91 OR A = 95 OR A = 96 THEN 
RETURN 


REM Ausführung der Versuche 


POP :X = X + 1: REM Pointer 

Y=Y+1: VTAB 21: HTAB 10: PRINT Y; 

VTAB 23: HTAB 11: PRINT I" / "D$(B); 

A(I) =: IF B= 1 THEN HCOLOR= :Il = I: GOSUB 515: 
HCOLOR= 7:Il = I - 2: GOSUB 515: HCOLOR= 9:Il = I - ]: 
GOSUB 515:A(I - 1) = B:A(I - 2) = 1:C(X) = I - 2: GOTO 
390 

IF B = 2 THEN HCOLOR= 9:Il = I: GOSUB 515: HCOLOR= 

7:Il = I + 22: GOSUB 515: HCOLOR= ®@:Il = I + 11: GOSUB 
515:A(I + 11) = B:A(I + 22) = 1:C(X) = I + 22: GOTO 399 
IF B = 3 THEN HCOLOR= @:Il = I: GOSUB 515: HCOLOR= 
7:Il = I + 2: GOSUB 515: HCOLOR= ß:Il = I + 1: GOSUB 
515:A(I + 1) = B:A(I + 2) = 1:C(X) = I + 2: GOTO 399 
HCOLOR= 9:Il = I: GOSUB 515: HCOLOR= 7:Il = I - 22: 
GOSUB 515: HCOLOR= 9:Il = I - 11: GOSUB 515:A(I - 11) = 
B:A(I - 22) = 1:C(X) = I - 22 

IF P3 = 2 THEN GOTO 555 

IF P2 = 4 THEN GOTO 585 

B(X) = B:Q = PEEK (49152): IF Q = 145 THEN POKE 
49168,®: GOTO 829 





Peeker 6/85 








IF X < > 31 THEN GOTO 285 

IF A(60) < > 1 THEN GOTO 295 
IF P2 = 2 THEN GOTO 569 

IF P2 l THEN GOTO 719 


REM Rüchnahme von Zügen 


A(C(X)) 

IF B(X) = 1 THEN I = C(X) + 2: HCOLOR= ®:Il = C(X): 
GOSUB 515: HCOLOR= 7:Il = I - 1: GOSUB 515:I1 = I: 
GOSUB 515:A(C(X) + 1) = 1!A(C(X) + 2) = 1:X=X- |]: 
GOTO 269 

IF B(X) = 2 THEN I =C 
GOSUB 515: HCOLOR= 7:I 
GOSUB 515:A(C(X) - 11) 
GOTO 285 

IF B(X) = 3 THEN I = C(X) 
GOSUB 515: HCOLOR= 7:Il = 
GOSUB 515:A(C(X) - 1) = 1 
GOTO 319 

I = C(X) + 22: HCOLOR= 9:Il = C(X): GOSUB 515: HCOLOR= 
7:Il = I - 11: GOSUB 515:I1l = I: GOSUB 515:A(C(X) + 11) 
= 1:A(C(X) + 22) = 1:X= X - 1: GOTO 219 


(X) - 22: HCOLOR= ®:Il = C(X): 
1= I + 11: GOSUB 515:I1l = I: 
= 1:A(C(X) - 22) = 1:X=X-|1: 


- 2: HCOLOR= 9:Il = C(X): 
I+ 1: GOSUB 515:Il = I: 
:A(C(X) - 2) = 1:X=X -]: 


REM Grafik mit Text 


HOME : HGR : HCOLOR= 7 

HPLOT 116,42 TO 162,42 TO 162,70 TO 199,78 TO 199,116 
TO 162,116 TO 162,144 TO 116,144 TO 116,116 TO 88,116 
TO 88,78 TO 116,78 TO 116,42 

X = 117:Y = 43: GOSUB 495:X = 8 
145:Y = 71: GOSUB 495:X = 117:Y 
505 

FOR I = 1 TO 4: FOR J = PB TO 2: HPLOTX,Y+JTOX + 
45,Y + J: NEXT J:Y=Y + 14: NEXT I:Y=Y - 56 

FOR I = 1 T0 4: FOR J = 9 TO 2: HPLOTX + J,YTOX+ 
J,Y + 45: NEXT J:X = X + 14: NEXT I: RETURN 

FOR Il = 26 TO 28: GOSUB 515: NEXT Il: FOR Il = 37 TO 
39: GOSUB 515: NEXT Il: FOR Il = 46 TO 52: GOSUB 515: 
NEXT Il: FOR Il = 57 TO 59: GOSUB 515: NEXT Il: FOR Il 
= 61 TO 63: GOSUB 515: NEXT Il: FOR Il = 68 TO 74: 
GOSUB 515: NEXT Il 

FOR Il = 81 TO 83: GOSUB 515: NEXT Il: FOR Il = 92 TO 
94: GOSUB 515: NEXT Il: GOTO 525 

I2 = Il / 11:X1 = INT ((I2 - INT (I2)) * 180) * 14 + 
80:Yl = 168 - INT (I2) * 14 

FOR J = ® TO 6: HPLOT X1,Yl + J TO X1 + 6,Yl + J: NEXT 
J: RETURN 

VTAB 21: PRINT "Versuch:': VTAB 23: PRINT "Position:"; 
X = 0:Y = B: GOTO 16% 

T=X:Y=Y-<X: FORX 1 TO T:B=B(X): IFB= 1] THEN 
= C(X) + 2: GOTO 369 

FB=2 THEN I = C(X) 22: GOTO 369 

FB=3 THEN I =cC(X) 2: GOTO 369 

I= C(X) + 22: GOTO 369 

NEXT X:P3 = 0:X = X - 1: GOTO 205 

T=X:Tl = Y:P2 = 4: GOSUB 489 

Y= Tl - 31: FOR X = 1 TO T: GOSUB 599:B = B(X): IFB= 
1 THEN I = C(X) + 2: GOTO 369 

IF B= 2 THEN I = C(X) - 22: GOTO 369 

IF B= 3 THEN I = C(X) - 2: GOTO 36% 

I= C(X) + 22: GOTO 36% 

NEXT X: GOSUB 590:X = X - 1: TEXT : HOME : END 

VTAB 23: HTAB 28: PRINT "Taste:";: GET T$: RETURN 


9:Y = 71: GOSUB 495:X = 
= 99: GOSUB 495: GOTO 


I 
I 
I 


REM Druckeransteuerung 


VTAB 19: POKE 35,5: PR# 1 

PRINT CHR$ (27);"D"; CHR$ (34); CHR$ (38); CHR$ (9) 
PRINT CHR$ (14); CHR$ (9) ;" " 

PRINT CHR$ (14); CHR$ (9); CHR$ (9) ;"SOLITAIRE" 
PRINT CHR$ (27);"S"; CHR$ (®); CHR$ (15) ;" 
Geschrieben von St. Maas, Münster 25.19.84" 

PRINT CHR$ (27);"H"; CHR$ (27);"T"; CHR$ (18); 

GOSUB 809: IF U = 1 THEN U = ß: GOTO 715 

GOSUB 799: PRINT "Brettkodierung:";: GOSUB 795 

PRINT CHR$ (27);"D"; CHR$ (48); CHR$ (9); 

GOSUB 798: PRINT CHR$ (27);"D"; CHR$ (33); CHR$ (9); 
CHR$ (9) ;"Zug-Beispiel:";: GOSUB 795 

PRINT CHR$ (27);"D"; CHR$ (48); CHR$ (P) 

PRINT : PRINT " 92 93 94"; CHR$ (®); CHR$ (9); 
"38 / HOCH bedeutet: " 

PRINT "' 8l 82 83" 

PRINT "68 69 7® 71 72 73 74"; CHR$ (®); CHR$ (9) ;"Der 
Stein auf Feld 38 wird auf Feld 68 (HOCH)" 

PRINT ''57 58 59 60 61 62 63"; CHR$ (9); CHR$ 
(9);"gesetzt und der übersprungende Stein (Feld 49)" 


65 





685 


699 
695 
709 
705 
719 


715 
720 


725 
730 


735 
740 
745 
758 
755 
760 


765 


779 
775 


789 
785 
799 
795 
800 


805 
819 
815 
820 


825 


830 
835 
840 
845 


850 


855 


860 


865 


870 


875 
8830 
885 
899 
895 
999 
905 
918 
915 
920 
925 
939 
935 
949 
945 


PRINT "46 47 48 49 50 51 52"; CHR$ (®); CHR$ 


(9) ;"entfernt." 





950 VTAB 11: HTAB 13: PRINT "Datenübergabe": FOR I = 1 TO 
31:B(I) = PEEK (33631 + I):C(I) = PEEK (33663 + I): 
NEXT I 

955 IF P2 = 1 THEN GOTO 619 

968 Y = 256 * PEEK (251) + PEEK (252):X = 31: GOTO 56® 


IF B(X) = 2 THEN D = C(X) - 22: RETURN 

IF B(X) = 3 THEN D = C(X) - 2: RETURN 

D = C(X) + 22: RETURN 

GOSUB 748: PRINT X;". ":D;" / ":DS(B(X));" I"; 
l: IF L< > 4 THEN GOTO 775 

L = 08:X = X + 1: PRINT CHR$ (9);: 
PRINT "* "- 

GOSUB 740: PRINT X;". 


PRINT " 37 38 39" 

PRINT " 26 27 28": PRINT 

GOSUB 8ß®: PR# ®: POKE 35,24: IF Pl = 1 THEN GOTO 71® 

GOTO 205 

VTAB 19: POKE 35,5:L = ®: PR# 1: IF U = 1 THEN GOTO 

615 

PRINT CHR$ (13) ;"Lösung: " 

PRINT CHR$ (27);"D"; CHR$ (1); CHR$ (21); CHR$ (41); 1 

CHR$ (61); CHR$ (81); CHR$ (P) 2 

GOSUB 789 3 

FOR X = 1 TO 39: PRINT CHR$ (9);: IF X < 19 THEN 4 

PRINT " ";: GOTO 769 5 

GOTO 769 6 

IF B(X) = 1 THEN D = C(X) + 2: RETURN 7 
8 
9 


u 
rm & 


:L=L+ 
IF X < 18 THEN 


";D;" / ";D$(B(X)); CHR$ (9) 


NEXT X: GOSUB 740: PRINT CHR$ (9);X;". ";D;" / 
":D$(B(X)): GOSUB 800: GOSUB 785: PR# ®: TEXT : HOME : 
END 

PRINT CHR$ (27);"R"; CHR$ (®);: RETURN : REM 

USA Character-Mode ein 

PRINT CHR$ (27);"R"; CHR$ (2);: RETURN : REM 

BRD Character-Mode ein 

PRINT CHR$ (27);"-"; CHR$ (1);: RETURN : REM 
Underline-Mode ein 

PRINT CHR$ (27);"-"; CHR$ (®);: RETURN : REM 
Underline-Mode aus 

PRINT CHR$ (14);: FOR I = 1 TO 48: PRINT "-";: NEXT I: 


PRINT : PRINT : RETURN : REM Zeilenabgrenzung 

REM -—-----—---—- 

REM Spielstandabspeicherung 

REM --------—--- -- -- --- -.-. —.—. 

PRINT : PRINT CHR$ (4);"OPEN SOLITAIRE.SPIELSTAND": 


PRINT CHR$ (4);"WRITE SOLITAIRE.SPIELSTAND": PRINT X: 
PRINT Y: FOR J = 1 TO X: PRINT B(J): PRINT C(J): NEXT 
J: PRINT CHR$ (4);"CLOSE SOLITAIRE.SPIELSTAND": TEXT : 
HOME : END 


PRINT : PRINT CHR$ (4) ;"OPEN SOLITAIRE.SPIELSTAND": 
PRINT CHR$ (4); "READ SOLITAIRE.SPIELSTAND'": INPUT X,Y: 
FOR J = 1 TO X: INPUT B(J),C(J): NEXT J: PRINT CHR$ 
(4) ;"CLOSE SOLITAIRE.SPIELSTAND":U = 1: GOTO 535 

REM —— 

REM Menü 

REM ——— 

INVERSE : PRINT "-—-----—----- -- 
SOLITAIRE von Stefan Maas 25.19.84 

-=----- '": NORMAL 
PRINT "Lösungsmöglichkeiten:": PRINT : HTAB 3: PRINT 


"(]) schnelle Lösung (Ausführungsdauer": HTAB 7: PRINT 
"ca. 41 Sekunden, ohne Grafik)": PRINT 

HTAB 3: PRINT "(2) langsame Lösung (Ausführungsdauer": 
HTAB 7: PRINT "ca. 14,5 Stunden, mit Grafik)": PRINT 
PRINT "Auagabe der gefundenen Lösungen:": PRINT : HTAB 
3: PRINT "(3) auf Drucker";: HTAB 22: PRINT "(4) auf 
Bildschirm": PRINT 

PRINT "Programmstart:": PRINT : HTAB 3: PRINT "(5) 
Neustart": HTAB 3: PRINT "(6) unterbrochene Partie neu 
starten" 

POKE 1795,49: POKE 1835,51: 
1:P3 =1 

VTAB 24: HTAB 1: PRINT "Wähle 1-6 (RETURN <=> Start):"; 
GET P$: IF ASC (P$) = 13 AND Pl = 2 THEN GOTO 489 

IF ASC (P$) = 13 THEN GOTO 945 

IF ASC (P$) < 49 OR ASC (P$) > 54 THEN GOTO 875 


POKE 1363,55:Pl = 1:P2 = 


P = VAL (P$): ON P GOTO 900,905,919,915,929,925 

POKE 1795,49: POKE 1195,178:Pl = 1: GOTO 929 

POKE 1195,50: POKE 1795,177:Pl = 2: GOTO 88® 

POKE 1835,51: POKE 1854,180:P2 = 1: GOTO 889 

POKE 1854,52: POKE 1835,179:P2 = 2: GOTO 889 

POKE 1363,53: POKE 1491,182:P3 = 1: GOTO 889 

POKE 1491,54: POKE 1363,181:P3 = 2: GOTO 985 

REM -------—--------—- -—- 

REM Binärfilesteuerung 

REM ------—--- - --- - -. —. 

HOME : HTAB 4: PRINT "SOLITAIRE-Binärfile wird 
geladen": PRINT CHR$ (4) ;'"BLOAD SOLITAIRE.B": VTAB 5: 
HTAB 9: PRINT "Lösungssuche gestartet": PRINT : HTAB 2: 
PRINT "(Lösung bei Klinkelzeichen gefunden)": CALL 


32768 


: A9 B0 16 
: 85 FD 17 
: 85 FC 18 
: 85 FB 19 
: A2 78 20 
OA 21 
: 9D BP 22 
: D® FA 28 
: A9 @l 24 
: BC 20 25 
: 99 90 26 
: E8 27 
: E® 20 28 
: FO 23 29 
: 20: 12 


SOLITAIRE.B 


ak ak ak ak ak ak ak a aka a aka ak aaa aka 
* SOLITAIRE - St. Maas, 25.19.84 x 
RR 


ORG 
POINTERl EQU 
POINTER2 EQU 
POINTER3 EQU 
VERSL EQU 
VERSH EQU 
SPIEL EQU 


$8009 
$FF 
$FE 
$FD 
$FC 
$FB 
$8309 


Berk 
* Spielfelddefinierung * 
ED a a a ne 
START LDA 
STA 
STA 
STA 
LDX 
DEX 
STA 
BNE 
LDA 
LDY 
STA 
INX 
CPX 
BEQ 
JMP 
HEX 


+09 
POINTER3 
VERSL 
VERSH 
+12 
SPIEL1 
SPIEL,X 
SPIELl 
+91 
FELD,X 
SPIEL,Y 


SPIEL2 


#32 
TEST 
SPIEL2 


lA 1B 1A1lB1C2526272ERF 


ı 25 26 
: 30 31 
: 35 54 
: SD 3E 
ı 44 45 
49 4A 
. 52 53 


HEX 3931323334393A3B 


HEX 3D3E3F4445464748 


HEX 494A5152535C5D5E 
rer 
* Ausführung der Züge * 
* 1,2,3,4 = 1.,0o.,r.,u. Bewegung * 
a a a ee 
TEST LDY #25 

STY POINTER1 

LDY POINTER1 

INY 
STY 
EPY 
BNE 
JMP 
LDA 


TESTI 


POINTER1 
#95 
TESTI1A 
TESTNEG 
SPIEL,Y 
BEQ TESTI 
STY POINTER1 
ea a a a 2 5 
* Bewegung nach links * 
a a a a a a 2 225 
FF LINKS LDY POINTERl 
DEY 
FE STY 
11) LDA 
23 BEQ 
DEY 
D0 LDA 
1D BNE 
2C CPY 
19 BEQ 
2D CPY 
15 BEQ 
37 CPY 
1l BEQ 
38 CPY 
OD BEQ 
42 CPY 
09 BEQ 
43 CPY 
05 BEQ 
01 LDX 
lE 81 74 JSR 


TESTIA 


POINTER2 
SPIEL, Y 
OBEN 


SPIEL,Y 
OBEN 
=44 
OBEN 
#45 
OBEN 
#55 
OBEN 
#56 
OBEN 
#66 
OBEN 
+67 
OBEN 
#01 
TEST2 





Peeker 6/85 





RR a a a a a ne en 
* Bewegung nach oben * * Zusatzauswertung der Versuche x& 
ET ee a a 
OBEN LDA POINTER1 ! TEST2 CPY #24 
CLC ; BEQ TEST3 
ADC #11 i CPY #25 
TAY : BEQ TEST3 
STA POINTER2 : CPY #29 
LDA SPIEL,Y : BEQ TEST3 
BEQ RECHTS 4 CPY #39 
LDA POINTER2 : BEQ TEST3 
CLC ; CPY #35 
ADC #11 \ BEQ TEST3 
TAY 5 CPY #36 
LDA SPIEL,Y : BEQ TEST3 
BNE RECHTS : CPY #40 
CPY #193 ; BEQ TEST3 
BEQ RECHTS / CPY #41 
CPY #194 > BEQ TEST3 
BEQ RECHTS : CPY +79 
CPY #185 , BEQ TEST3 
BEQ RECHTS | CPY +89 
CPY #114 ; BEQ TEST3 
BEQ RECHTS \ CPY #84 
CPY #115 : BEQ TEST3 
BEQ RECHTS a CPY #85 
CPY #116 ‘ BEQ TEST3 
BEQ RECHTS ; CPY #99 
LDX #92 : BEQ TEST3 
JSR TEST2 ; CPY #91 
a ee 7 x BEQ TEST3 
* Bewegung nach rechts «* : CPY +95 
a a a a ee 7 : BEQ TEST3 
RECHTS LDY POINTERLl i CPY #96 
INY $ BEQ TEST3 
STY POINTER2 i JMP TEST4 
LDA SPIEL,Y € TEST3 RTS 
BEQ UNTEN ES ee 
INY * Ausführung von Zügen * 
LDA SPIEL,Y Een 
BNE UNTEN ; TEST4 INC VERSL 
CPY #53 > BNE VERSI1 
BEQ UNTEN > INC VERSH 
CPY #54 : PLA 
BEQ UNTEN : PLA 
CPY #64 { INC POINTER3 
BEQ UNTEN > TXA 
CPY #65 : LDX POINTER3 
BEQ UNTEN ; STA $835F,X 
CPY #75 ; TYA 
BEQ UNTEN - STA $837F,X 
CPY #76 ; LDA #01 
BEQ UNTEN : STA SPIEL,Y 
LDX #93 : LDA #9® 
JSR TEST2 i LDY POINTER1 
Eee 7 : STA SPIEL,Y 
* Bewegung nach unten * : LDY POINTER2 
a ee ; STA SPIEL,Y 
UNTEN LDA POINTERIl : CPX #31 
SEC € BEQ ENDE 
SBC #11 n JMP TEST 
TAY { LDA $833C 
STA POINTER2 a BNE ENDEIl 
LDA SPIEL,Y : JMP TEST 
BEQ TESTI1 £ ENDEl JSR $FBDD 
LDA POINTER2 N RTS 
SEC RR 
SBC #11 * Rücknahme von Zügen * 
TAY ea a a ee ee en 
LDA SPIEL,Y t TESTNEG LDY POINTER3 
BNE TESTI1 3 LDA $835F,Y 
146 CPY #4 ; LDX $837F,Y 
147 BEQ TESTI1 ; CMP #@1 
148 CPY #5 ı BEQ TESTNEGI 
149 BEQ TESTI1 : CMP #92 
159 CPY #6 . BEQ TESTNEG2 
151 BEQ TESTI1 t CMP #93 
152 CPY #15 : BEQ TESTNEG3 
153 BEQ TESTI1 : LDA #98 
154 CPY #16 : STA SPIEL,X 
155 BEQ TESTI1 : TXA 
156 CPY #17 : CLC 
157 BEQ TESTI1 s ADC #11 
158 LDX #94 > TAX 
lE 81 159 JSR TEST2 - LDA #91 
44 80 160 TESTI1 JMP TESTI : STA SPIEL,X 





Peeker 6/85 67 


EEE 


ar 
Oo 
> 
eb) 
Pr) 
2) 
o) 
£ 
o)) 
Oo 
we 
Pa) 
& 
X 


m 
[ee] 
BE 
4p} 
en 
N 
N 
N 
S 
pw 
R- 
(0 
Pr] 
> 
O 
x 
N 
22 
cd 


u II STW ST-Jolal-lg 





#11 


#01 
SPIEL,X 
POINTER3 
POINTER1 
TEST1 
#09 
SPIEL,X 
+01 


TESTNEG1l 


SPIEL,X 


SPIEL,X 
POINTER3 
POINTER] 
OBEN 

#09 
SPIEL,X 


TESTNEG2 


#11 


+01 
SPIEL,X 


Texas Software Cassetten. Lerne BASIC-1-9 u. 5 versch. Spiele. 


2 Cassetten. DM 9,90 


ATARI-Sensorkeyboard. Matrix. Tasten frei belegbar. 


Ausgeprägte Tasten f. sichere Eingabe. 61 Tasten. 
BN 93185 DM 9,80 
ASC Il-Keyboards evtl. können einige Tasten fehlen. 


= . u 2 gleiche Keyboards. 
us 2 mach 1. 
DM 24,90 
DM 45,— 


BN 93190 

BN 93191 
DM 5,90 
DM 7,90 


2x ASCII 


4 Stück nur 


2x3 Amp. Computer Netzfilter 
BN 93192 


2x2 Amp. aber mit Kalgeräte-Steckdose 
BN 93194 


ASCII-Keyboards 
mit 
Gehäuse 


ASCII- 
Standard 


I Tastatur Apple 
Problemloser Anschluß. Volle Garantie 
mit Anschluß manual. Pultgehäuse. Industrieware. 
BN 93077 
Dieselbe Tastatur mit 10er Block u. Cursor. D M 98, 
BN 93078 DM 1 39 Ba 
Tastatur wie BN 93078 ohne Gehäuse 
Der Massenspeicher 1 M-Byte 
Mit Anschlußanleitung für Apple-Computer. 
1 Mega-B Doppelkopf. Standard Shugart BUS. 
Qualitätslaufwerke eines bekannten Japanischen 
dendienst über unsere Organisation. 
Minimaße nur 150 x 100 x H 40 mm. 


u. NDR Computer fähig. 
Kabel mit 26-pol. Stecker. Processor AMI 8207 Stromvers. +5 V. 
Processor AMI 8021. 
BN 93079 DM 89,90 
3”-Mini-Floppy-Laufwerk. 2 x 80 = 160 Track. 
Herstellers. Guß-Chassis. 1 Jahr Garantie. Kun- 
BN 65 163 1 M-BYTE-KAPAZ. DM 598, — 


8lF5: E9 
8lF7: AA 
8lF8: A9 
8lFA: 9D 
8lFD: C6 
8SlFF: 86 
8201: AC 
8204: A9 
8206: 9D 
8209: A9 
820B: CA 
820C: 9D 
S2ÖF: CA 
8210: 9D 
8213: C6 
8215: 86 
8217: 4C 


538 Bytes 


Tabelle 1: 


92 
8l 
68 69 79 
57 58 59 
46 47 48 


93 
82 
TL 
6% 
49 


#11 


#01 
SPIEL,X 
POINTER3 
POINTER1 
RECHTS 
+00 
SPIEL,X 
#01 


TESTNEG3 


SPIEL,X 


SPIEL,X 
POINTER3 
POINTER1 
UNTEN 


Brettkodierung 


94 Zugbeispiel: 
83 

12 73 74 
61 62 63 
50 51 52 


38 / HOCH bedeutet: 


Der Stein auf Feld 38 wird auf Feld 


37 358 39 
26 27 28 


Graphic Computer Mouse 
Graphic-Designer Apple compatible. 

Erstellt Zeichnungen und Graphicen einfach 

und schnell. Direkt auf den Bildschirm. 

Gute Auflösung. Viele Funktionen bereits 
programmiert wie Frame/Line/Circle/Ellype/Fill/ 
Prints u. viel, viel mehr. Komfortable Menu- 
Steuerung. Anschluß über Game IO Port. 

Lieferung mit Kabel, Software 5 4" Discette 


und Anleitung. 
BN 65 156 DM 189, — 


Unser Kundendienst in Baden-Baden 


und Karlsruhe kann alles reparieren. 
Wir verfügen über alle Ersatzteile. 


Paßt an jeden Apple und ähnliche 
Lautloses 54” Floppy-Laufwerk völlig narrensicher. 
Hochwertigste jap. Mechanik. Elektronik garantiert 
ohne Ausfälle. Wir geben gerne 1 Jahr Garantie 

auf diese Qualität. Slim Line. 

Jap. Spitzentechnologie. 

BN 65147 Geräuschloses 54" 
BN 65148 Pass. Slim Line Geh. 


BN 65011 Disc Drive Card DM 119, — 


Blitzpreis! Japan-Qualität 
5Y4”/Apple compatible Anschlußkabel 
Apple fähiges Floppy. Slim Line. Metall-Gehäuse. 

1 Jahr Vollgarantie. Sofort anschließbar. 

Einfach nur am Apple einstecken. 

BN 65 151 DM 399,90 


DM 448,— 
DM 38,— 


Original Data Magnetics US-Qualität 54” 

100% Errorfree. Jede defekte Discette tauschen wir gegen 2 neue 
5 Jahre Garantie auf dieses Material. 

DMı1S SS-SD 
BN 65152 
BIVEEDEEESTEB]B 
BN 65 153 
DM2D DS-DD 
BN 65 154 


Hochwertige Interface-Leerplatine 
für Apple u.ä. 


Epoxy oder glasfaserverstärktes Material. Bereits gebohrt. 

65164 64 K Motherboard 89,— 65171 Eprom Writer 
Dual-Processor 65172 PAL/VIDEO/Modul. 

65165 Z-80 65173 128 K 

65166 80 Zeichen/Soft 65174 Mikro Buffer 

65167 Serial/RS 232 65175 Buffer Printer 

65168 Parallel/8 Bit 65176 Super Serial 

65169 16 KRAM 65177 wD 

65170 6522 65178 Micro Modem 


10er Pack 
10er Pack 


10er Pack 


19,50 
19,50 
15,90 
15,90 
19,50 
15,90 


DM 383,— 
D] 1 Re} Pu 
D] 1) nn 


n 


19,50 
19,50 
29,50 
19,90 
25,80 
19,90 
19,50 
29,50 


60 (HOCH) 


gene Stein (Feld 49) entfernt. 


Soft und Zubehör 


5 Stück Comp. Cassetten. 
10 Min. Tonbandspulen 


BN 65045 


5 Stuck Comp. Cassetten. 

15 Min. ohne Tonbandspulen 
BN 65046 DM 6,90 
5 Stück Discettenbox 5'/4" für je 5 Discetten farbig. 
BN 65112 DM 12,90 
5Y.a" Discetten Bibliothek für 10 Discetten Kunststoff 
BN 65057 DM 8,90 
51/4” Discetten Bibliothek für 15 Discetten Kunststoff 
BN 65130 DM 19,80 
51" Discetten Bibliothek fur 50 Discetten Kunststoff 
BN 65110 DM 28,50 
51%" Discetten Bibliothek 

für 100 Discetten Kunststoff a 


BN 65049 


DM9,95 


M 49,80 
Disc Doubler (Notcher) 

macht aus einer SS eine DS 54" 
BN 65143 

*Microswitch. 

Standard ASCIlI Parallel. 
Halltastatur/Cursor/Viele Funktions- 
tasten/+5 V/-12 V 


BN 92272 Apple u.a DM 178, — 


Der SUPERKNÜPPEL FÜR APPLE 

und kompatible. VG-071. 

Joystick der edelsten Sorte. 

Leichtgängiger Kreuzknüppel mit automatischer | 
Nullpunkt-Rückstellung. Spezielle Trimmregler 

zur genauen Einpegelung für jeden Kanal 

2 Abschußknöpfe. Rutschfeste Gummifüße. 
Flexibles Anschlußkabel 1,60 m lang. 

Komplett mit Stecker, sofort betriebsbereit. 


Metallgehäuse. 
BN 65056 VG-071 DM 49,90 


Original TEAC 55 F. Double Density. 2 x 80 Track. 


BN 65179 DM 598, — 


300 Band Modem CCITTV. 21 
Postgenehmigt mit FTZ. Anschluß an alle Computer 

mit V 24 Schnittstelle. Schnittstellenstecker. Vollduplex. 
Answer- und Originalmodus. Autom. Kanalwahl. 
Made in Germany. 


BN 65180 


Neue Discetten-Boxen 


Karussell-Box für 64 Discetten 5%”. 
Bequemer Zugriff. Stapelbar oder mit 
Wandhalterung. ® 320 x H 200 mm. 
BN 65 155 

Jetzt 3,5” Discetten-Box für 

50 Stück 3,5” Discetten 
Klappbox mit Sortiereinrichtung. 


BN 65146 


DM 14,90 


DM 59,80 


DM 29,50 


Bühler Elektronik, Postfach 32, 7570 Baden-Baden, Tel. (07221) 3487 


68 


gesetzt und der Be ' 


Teilzahlung ab DM 300,- (ohne Zinsen) 


A-Tger: Tel .dtlsTe m ig-T 


Se slat- 1A -TEF-Tıle 


DM 298,— NG) 





Peeker 6/85 





Leserbriefe 


Garbage Collection bei TASC 
Zuerst möchte ich mich für die Ver- 
öffentlichung dieser wirklich inter- 
essanten Routine bedanken, durch 
welche es möglich ist, die meiner 
Meinung nach größte Schwach- 
stelle des Applesoft-Interpreters 
auf einfache und sichere Art zu 
umgehen. 

Des weiteren möchte ich nun an- 
fragen, ob die Möglichkeit besteht, 
diese Routine auch auf mit TASC 
2.0 compilierte Programme anzu- 
wenden, und welche Modifikatio- 
nen hierzu notwendig sind. 

Kurt Lutsch, Esslingen-Zell 

Diese Frage wurde uns sehr häufig 
gestellt. Das FRE-Programm aus 
Peeker 1/2, 1985, läuft jedoch 
nicht beim TASC, weil dieser ganz 
andere String-Pointer als Applesoft 
benutzt. So steht beispielsweise 
das Länge-Byte vor dem String 
selbst und nicht beim Pointer wie 
in Applesoft. Es wäre deshalb er- 
forderlich, das FRE-Programm völ- 
lig umzuschreiben. Übrigens, 
wenn man die RUNTIME von 
TASC 2.0 mit BLOAD RUNTIME, 
A$0806 einlädt, so befindet sich 
der TASC-eigene FRE-Befehl ab 
$0F16 im Speicher. us 


RAMDISK.LC-Bug 

Mein RAMDISK.LC-Programm 
enthielt leider einen unerfreulichen 
Bug. Es springt von der LC zu- 
nächst nach $0100 in den Stack, 
um dort die LC abzuschalten. Den 
Stack wählte ich, weil die unteren 
48K, z.B. ab $0300 o.ä., unberührt 
bleiben sollten. Bei Applesoft- und 
Binärfiles war noch alles in Ord- 
nung. Wenn jedoch Zahlen-Text- 
files mit „FORX = 1 TON: PRINT 
Z (X): NEXT" gespeichert werden 
sollten, passierte folgendes: Jede 
einzelne Zahl Z (X) wird vom Ap- 
plesoft-Interpreter in einen ASCII- 
String konvertiert, der zunächst ab 
$0100 abgelegt wird. Diese ASCII- 
Strings werden nach und nach in 
den I/O-Puffer z.B. ab $9600 über- 
tragen. Wenn dieser Puffer voll ist, 
greift die RWTS und folglich auch 
der RAM-Disk-Driver ein, der den 
Bereich ab $0100 wegen des ge- 
nannten Rücksprungs modifiziert. 
Und genau diese geänderten 
Bytes werden dann als Zahl auf 
den RAM-Disk-Sektor geschrie- 
ben, und zwar dann, wenn eine 
Zahl zwei Sektoren überlappt (z.B. 
die ersten 3 Ziffern am Ende des 
vorangehenden und die letzten 3 
Ziffern am Anfang des nachfolgen- 


Peeker 6/85 


den Sektors). Statt $0100 kann 
man z.B. $0110 als Rücksprung 
wählen, womit der Bug beseitigt 
wird. Es ist dann wie folgt zu pat- 
chen: 

BLOAD RAMDISKLC 

CALL -151 

63CC: 10 

63D4: 13 

63D7: 10 

63E9: 10 

Ctrl-C 

BSAVE RAMDISK.LC, A24861, 
L739 

Die nachfolgenden Leserbriefe be- 
ziehen sich auf diesen Bug. Man 
beachte die geniale Lösung von 
Herrn Kociemba, die jedoch nur 
auf dem Apple II Plus und dem 
momentanen Ile funktioniert, nicht 
jedoch auf dem Apple Ilc sowie 
auch nicht auf dem Apple Ile mit 
den neuen ROMs, weil sich $40 = 
Opcode für RTI bei $FFFE befin- 
den muß: 


Als Leser, der Ihre Zeitschrift von 
Anfang an regelmäßig liest, möch- 
te ich nach der Mai-Ausgabe nun 
auch eine kleine Kritik anbringen. 
Zum RAM-Disk-Driver-Artikel 
möchte ich fragen, warum der Um- 
weg über Stackbereich oder eine 
158,- DM teure Interface-Karte ge- 
nommen werden muß. Es wäre 
doch theoretisch denkbar, die 
Routine zur Übertragung von 
„oben“ nach „unten“ parallel im 
Hauptspeicher und im Zusatzspei- 
cher unterzubringen, so daß der 
Prozessor nach dem Umschalten 
die Routine im RAM auf der 64K- 
Karte weiter abarbeiten kann. Eine 
derartige Methode hätte zwar den 
Nachteil, daß etwas mehr Speicher 
für das Programm gebraucht wird, 
wäre aber eleganter als eine Zer- 
störung des Stacks oder der Ge- 
brauch einer teuren Zusatzkarte. 
Ihre Ankündigung 4 weiterer Pro- 
gramme für diese Karte läßt mich 
einen Test dieser Karte fordern. 
H.-D. Siewert, Lippstadt 


Mit Interesse habe ich Ihren Artikel 
über die „Poor Man’s RAM-Disk“ 
gelesen. Sie schreiben, daß es 
nicht möglich ist, die Language 
Card von der Language Card aus 
zu desaktivieren. Mit einem klei- 
nen Programmiertrick ist dies je- 
doch immer problemlos möglich, 
wobei das Programm jedoch von 
der Art des verwendeten ROMs 
abhängen kann. 

Das hier beschriebene Programm 
funktioniert mit dem Autostart 
ROM, das wohl bei der überwie- 
genden Mehrzahl aller Apple ver- 
wendet wird, und beruht aus- 





schließlich auf der Tatsache, daß 
der IRQ-Vektor dieses ROMs auf 
die Routine $FA40 zeigt. Dabei 
sind die Zeilen 471 bis 513 des 
von Ihnen beschriebenen RAM- 
Disk-Drivers durch folgende Zeilen 
zu ersetzen: 
WEITER 
EXIT1 


EQU $BD06 
JSR ZEROLOAD 
LDA /WEITER 
PHA 
LDA #WEITER 
PHA 
PHP 
JMP LCOFF 
JSR ZEROLOAD 
TSX 
PHP 
INX 
INC STACK,X 
BNE LCOFF 
INX 
INC 
INC STACK,X 
JMP LCOFF 
ZEROLOADLDX #3 
ZEROL1 LDA ZERO,X 
STA RAM,X 
DEX 
BPL ZEROL1 
LOY =2 
RTS 
DFS $7 
LCOFF BIT $BIT $C082 
Herbert Kociemba, Darmstadt 


EXIT2 


Es geht auch anders 

Äußerst zuvorkommend war der 
Service der Firma Erphi-Elektronik, 
die nicht nur vollkommen kosten- 
los das EPROM meines Erphi- 
Controllers gegen einen neueren 
Stand austauschte, sondern auch 
gegen einen niedrigen Betrag 
mein eigenes 2 x 80 Track Philips- 
Laufwerk für Apple-Standard mo- 
difizierte. 

Sowohl mit Laufwerk und speziell 
mit dem Controller bin ich mehr als 
zufrieden! 

Leider gibt es auch Firmen mit an- 
derer Geschäftsauffassung — be- 
sonders nach Verkauf der Pro- 
dukte. 

Es würde mich freuen, wenn die- 
ser Brief veröffentlicht würde. Ich 
habe Hoffnung, daß derartiges 
Aufzeigen von sehr positiver Kun- 
denbetreuung auch andere Her- 
steller/Händler zu ähnlichem Ver- 
halten animiert. 

Udo W.Völker, Essen 


PLOT.2.O 

Im Programm PLOT.2.0O in Peeker 
5/85 auf Seite 17 haben sich leider 
zwei Fehler eingeschlichen: 

3940 GOSUB 4700: IF A$ = "N" 
THEN 3910 


Leserbriefe 9.4 


5400 CALL AS%: F$ = “Y= 
GOSUB 2 

Außerdem könnte man den EXEC- 
File weglassen, wenn man Zeile 
5610 folgendermaßen ändert: 
5610 POKE 103,1: POKE 16384,0: 
PRINT CHR$(4) “RUN PLOT.2.0“. 
Alois Strobel, Forbach 

Vielen Dank für die Korrektur. 
„GOSUB 1010“ geht „auf unsere 
Kappe“, da wir u.a. die ersten Zei- 
len umgeschrieben haben, weil 
man sonst Zeile 2 nicht mehr ein- 
geben könnte. us 


DOSinLC 

Obwohl mir Peeker sonst ganz gut 
gefällt, finde ich es nicht gut, daß 
angekündigte Beiträge nicht ge- 
druckt werden, wie z.B. die As- 
sembler-Einführung oder das 1- 
Drive-Kopierprogramm, und daß 
Serien sehr weit auseinandergezo- 
gen werden und nicht in aufeinan- 
derfolgenden Ausgaben erschei- 
nen (siehe Graf-quattro). Übri- 
gens: Einen Artikel über das Ver- 
schieben des DOS in die LC finde 
ich wünschenswert. 

Torsten Wolf, Bochum 


SCREEN 80 

Ich habe seit ein paar Wochen Zu- 
gang zu einem Apple IIc-System 
mit externer Floppy und Imagewri- 
ter. Weiterhin lese ich seit ein paar 
Monaten die Peeker-Hefte. 

Nun verfüge ich zwar über Grund- 
kenntnisse in BASIC, habe aber 
leider keine Ahnung und äußerst 
wenig Zeit, mir diese in Assem- 
bler-Programmierung zu verschaf- 
fen. Dennoch möchte ich aber die 
in Peeker erscheinenden Program- 
me in eigenen Programmen als 
Utilities oder selbständig verwen- 
den und einsetzen, da sie meist 
die Sparten abdecken, die ich als 
Nur-Anwender gut gebrauchen 
kann. Wie gebe ich aber die mit 
BASIC gemischten oder reinen 
Assembler-Listings und Hex- 
Dumps ein? — Kann ich die Pro- 
gramme von Peeker-Disketten oh- 
ne weiteres in eigene Programme 
einbinden? 

Als Beispiel sei die Hard-Copy- 
Routine „SCREEN80“ aus Peeker 
4/85 gewählt. Ich tippte das Pro- 
gramm laut Listing ein — keine Re- 
aktion nach Starten durch RUN 
oder CALL 768. — Wie muß ich 
vorgehen? — Wie kann ich feststel- 
len, bis zu welcher Adresse mein 
BASIC-Programm geht und wo ich 
dann SCREEN80O anhängen oder 
vom BASIC-Programm aufrufen 
kann. 

Michael Tarnowski, Wiesbaden 
Wenn man SCREEN80 mit CALL 


69 








768 startet, muß der Drucker be- 


reits eingeschaltet sein (grüne 
„POWER“-Taste leuchtet). Wenn 
der Drucker ausgeschaltet ist, war- 
tet SCREEN80 „ewig“, bis man 
ihn einschaltet. Dann hilft nur noch 
entweder Drucker einschalten 
oder Reset drücken. Da 
SCREEN80 für Drucker aller Art 
geschrieben wurde, kann die 
Druckbereitschaft nicht geprüft 
werden.us 


Wie gibt man Maschinenpro- 
gramme ein? 

Könnten Sie vielleicht einmal exakt 
erklären, wie man Programme (wie 
in Heft 5/85, S.50 INALL = Ma- 
schinenprogramm) in den Rechner 
eingibt?! Genaue Vorgehensweise 
beim Eintippen solcher Maschi- 
nenprogramme! 

Roland Sieling, Voerde 


AUGE und Peeker 

Im Peeker, 4/85, S. 7, hatte ich 
geschrieben: „Die einschlägigen 
Treffen der AUGE usw. dienen 
meist weniger dem Erfahrungs- als 
vielmehr dem Programmaus- 
tausch, wobei die kopiergeschütz- 
ten Programme mittels Kopien der 
kopiergeschützten Kopierpro- 
gramme kopiert werden“. Diese 
Aussage beruht auf meiner Erfah- 
rung mit einer Regionalgruppe, wo 
ich einmal vor einem guten Jahr 12 
Apples mit „Nibble Away“, 
„Locksmith“ usw. in Aktion zählte, 
ferner auf telefonischen und 
schriftlichen Angaben von Peeker- 
Lesern und letztlich auch aufgrund 
von Mitteilungen im AUGE-Maga- 
zin selbst (zuletzt im Mai-Heft, S. 
8: „Dann kam das Gespräch wie- 
der auf die Regionalgruppen, wo 
es (Schilderung eines RG-Leiters) 


so aussieht: Mehrere Mitglieder 
bilden riesige Trauben um die 2-3 
vorhandenen Computer, um kom- 
merzielle Software zu kopieren“). 
Es wäre falsch zu sagen, daß alle 
Regionalgruppen sich diesbezüg- 
lich betätigen. Es wäre aber umge- 
kehrt ebenso falsch zu sagen, daß 
gar keine Regionalgruppe sich 
diesbezüglich betätigt. Es gibt Re- 
gionalgruppen, die von vornherein 
das Kopieren von Fremdprogram- 
men untersagt und damit Schwarz- 
kopierern einen Riegel vorgescho- 
ben haben. Eine solche vorbildli- 
che Regionalgruppe ist beispiels- 
weise diejenige vom Großraum 
Kassel, wie aus dem nachfolgen- 
den, aus Platzgründen gekürzten 
Leserbrief hervorgeht. Ich würde 
mich freuen, wenn alle Regional- 
gruppen so wären, und verzichte 
deshalb auch darauf, einen Leser- 


brief, der eine genau diametral ent- 
gegengesetzte Regionalgruppe 
schildert, abzudrucken, da ich mir 
von einer positiven Darstellung ei- 
nen positiven Nachahmungseffekt 
verspreche. Zudem würde ich der 
AUGE empfehlen, in die Satzung 
einen Passus aufzunehmen, der 
Schwarzkopierer aus dem Verein 
ausschließt. Danach würde eine 
Selbstreinigung stattfinden und 
das Gerücht von einem „Kopier- 
verein“ ein für allemal aus der Welt 
geschafft. Nunmehr der Leser- 
brief: 

In Ihrem Artikel über „Software 
und Kopierrecht“, Heft 4/85, Seite 
7, degradieren Sie, Herr Stiehl, die 
AUGE zu einem „Kopierverein“. 
Ich bin seit Mitte 1981 Regionallei- 
ter der AUGE im Großraum Kassel 
gewesen, und ich versichere hier- 
mit, daß auf keinem einzigen von 





Wie gibt man Maschinenprogramme ein? 


Nicht jeder versteht sich in der 
Kunst der Maschinensprache. Die 
im Peeker veröffentlichten Assem- 
blerprogramme sind dennoch auch 
für den nützlich, der nicht über die 
Kenntnis von Bits und Bytes im 
Computer verfügt. Wir wollen da- 
her im folgenden erläutern, wie 
Maschinenprogramme eingege- 
ben, gespeichert und aufgerufen 
werden. 


Die Eingabe 

Zur Eingabe von Hexadezimal- 
Zahlen bedient man sich am be- 
sten des System-Monitors, der aus 
Applesoft durch CALL -151 akti- 
viert wird. Es erscheint dann an- 
statt des gewohnten Promptzei- 
chens „U“ oder „]“ der Stern „x“. 
Will man nun einen Hexdump ein- 
geben, so tippt man zunächst die 
erste Adresse ohne „$“, gefolgt 
von einem Doppelpunkt (alle Wer- 
te werden im Monitor stets hexa- 
dezimal angegeben). Die folgen- 
den Hex-Zahlen werden nun, je- 
weils durch ein Leerzeichen ge- 
trennt, nacheinander eingegeben 
(kein Leerzeichen zwischen Dop- 
pelpunkt und erster Zahl), wobei 
nicht nach jeweils 8 Bytes die 
Adresse neu eingegeben werden 
muß (wie im Hexdump ausge- 
druckt), sondern bis zu ca. 80 Hex- 


70 


Zahlen getippt werden können, be- 
vor die Return-Taste betätigt wer- 
den muß. Um weitere Zahlen ein- 
zugeben, genügt es nun, wieder 
einen Doppelpunkt einzugeben 
und die nächste Zahlenkolonne 
einzutippen. So verfährt man, bis 
alle Bytes eingegeben sind. 


Assemblerlistings 

Wurde nur ein Assemblerlisting 
abgedruckt, so verfährt man hier- 
bei analog, wobei nun alle diejeni- 
gen Bytes eingegeben werden 
müssen, die rechts von dem Dop- 
pelpunkt der Adresse und der fort- 
laufenden Zeilennummer des Li- 
stings stehen. Das kurze Assem- 
blerlisting 


0300: A9 BO 1 LDA #0" 
0302: 20 ED FD 2 JSR COUT 


wird durch folgende Zeile einge- 
geben: 


300:A9 BO 20 EDFD <RET>. 


Nachprüfen und Korrigieren 

Zuweilen möchte man die einge- 
gebenen Zahlen nachprüfen. Dazu 
gibt man die Anfangsadresse des 
gewünschten Bereichs, einen 
Punkt und dann die Endadresse 
des zu listenden Bereichs ein, ge- 
folgt von Return (z.B. „300.345 


<RET>"). Es erscheint dann eine 
Liste der gespeicherten Bytes, wie 
sie in den Hexdumps ausgedruckt 
ist. 

Hat man einen Fehler entdeckt, so 
kann ein einzelnes Byte durch 
„<Adresse>:<Byte>" über- 
schrieben werden. Achtung: Steht 
das Byte nicht am linken Rand, so 
muß die tatsächliche Adresse vom 
Rand her abgezählt werden. Ist 
z.B. in der Zeile 


0308- 00 01 03 03 04 05 06 07 


das dritte Byte falsch, so wird es 
durch 


30A:02 <RET> 
überschrieben. Durch Eingabe von 
308.30F <RET> 


wird dann die korrigierte Zeile an- 
gezeigt: 


0308- 00 01 02 03 04 05 06 07. 


Hat man ein Byte zuviel oder zu- 
wenig eingegeben, hilft fast nur 
noch ein erneutes Eintippen ab der 
fehlerhaften Stelle. 


Abspeichern 
Bevor nun der erste Probelauf er- 
folgt, sollte das Programm zu- 


nächst abgespeichert werden. 
Hierzu tippt man die Kopfzeile des 
Hexdumps ein (z. B. „BSAVE 
PROGRAMM, A$300, L$AB 
<REI>") oder allgemein 
„BSAVE <Name>, A$<Start>, 
L$<Länge>". Dabei ist <Start> 
die erste Adresse des Programms 
(hexadezimal) und <Länge> die 
Anzahl von Speicherstellen, die es 
belegt. Die Länge kann bei Listings 
der letzten Zeile entnommen wer- 
den. „171 Bytes“ steht z.B. für 
dezimal 171 Bytes (hexadezimal 
$AB Bytes); soll der dezimale Wert 
angegeben werden, so muß das 
Dollarzeichen bei der Länge-Anga- 
be entfallen: „BSAVE PRO- 
GRAMM, A$300, L171 <RET>“. 


Laden und Aufrufen 

Zum späteren Einladen des Pro- 
gramms genügt die Eingabe 
„BLOAD <Name>" oder, falls es 
sofort ausgeführt werden soll, 
„BRUN <Name>". Ein im Spei- 
cher befindliches Programm startet 
man im Monitor durch „<Start> 
G“, wobei <Start> wieder für die 
hexadezimale Startadresse des 
Programms steht. 

Hat man seine Arbeit im Monitor 
beendet, so kommt man durch Ein- 
gabe von Ctri-C <RET> wieder 
nach Applesoft. 


Peeker 6/85 





mir geleiteten Treffen jemals ande- 
re als selbsterstellte oder freigege- 
bene Vereinssoftware kopiert wor- 
den ist! Meine Regionalmitglieder 
können durchweg bezeugen, daß 
ich immer energisch gegen alle an- 
deren Kopierversuche vorgegan- 
gen bin und daß niemals der Ein- 
satz eines Bit-Kopierers o.ä. ge- 
duldet worden ist! Unsere Treffen 
hatten immer Niveau und dienten — 
abgesehen von ungeliebtem, aber 
notwendigem Vereinskram — aus- 
schließlich der Information und 
Weiterbildung, der Weitergabe von 
Erfahrungen, der Lösung von Pro- 
blemen, die eigentlich Angelegen- 
heit der Firma Apple gewesen wä- 
re, und der Unterstützung von 
Neulingen. Aus unserer Gruppe 
entstand irgendwann dann die Re- 
gionalgruppe Göttingen, der zum 
größten Teil auch Lehrpersonal der 
Universität angehört, und die sich, 
wie ich mir vorstellen kann, sicher- 
lich ebenso wie wir gegen Ihre un- 
qualifizierte globale Behauptung 
verwahren wird. 


Wenn man allerdings die Seite 68 
desselben Heftes aufschlägt, in 


dem Sie regelrechte Rundum- 
schläge in Richtung AUGE austei- 
len, wird einiges klar: Sie selbst 
sind ja ebenfalls AUGE-Mitglied, 
und zwar ein ebenso engagiertes 
wie ich. Einen Beweis dafür kann 
ich vorlegen in Form einer erst- 
klassigen „AUGE-Diskette“ über 
das Grundthema „Assembler-Pro- 
grammierung“, die Sie verfaßt ha- 
ben und die in unserer Regional- 
gruppe immer noch sehr geschätzt 
wird. So fleißige und engagierte 
Leute wie Sie stoßen in einer Ver- 
einigung von inzwischen fast 5000 
Mitgliedern allerdings zwangsläufig 
irgendwann einmal auf Frust, und 
Sie hatten offensichtlich Ihr größ- 
tes Negativ-Erlebnis mit einem ru- 
dimentären, schwachen und ziem- 
lich kleinkarierten Vorstand der 
AUGE, den Sie nun gleichsetzen 
mit dem gesamten Verein! Sie 
bringen unsere wirklich interes- 
sierten und guten Mitglieder durch 
Ihre Verhaltensweise in ein arges 
Dilemma: Denn einerseits schät- 
zen wir Ihre Zeitschrift vom sonsti- 
gen fachlichen Inhalt her als eine 
der zur Zeit besten auf dem Markt. 
Dabei identifizieren wir uns zu ei- 





nem Großteil insbesondere mit der 
von Ihnen vertretenen kritischen 
Haltung gegenüber dem Ge- 
schäftsgebaren der Firma Apple, 
von der wir als Einzelpersonen, 
aber auch als AUGE-Mitglieder in 
der Vergangenheit wahrhaftig nicht 
verwöhnt worden sind. Anderer- 
seits können wir nicht Peeker- 


Leserbriefe 9,4 


Abonnenten und AUGE-Mitglieder 
gleichzeitig sein, wenn Sie eine Ih- 
rer wichtigsten Aufgaben darin se- 
hen, gegen uns Krieg zu führen! 
Auch glauben wir, daß ja das „User 
Magazin“ und der „Peeker“ nicht 
um jeden Preis in „Konkurrenz“ 
zueinander stehen müssen. 
Jürgen Heil, Volkmarsen 





An Ear to the Ground 


Nach jedem Peeker-Heft gehen so 
viele Zuschriften ein, daß ich pro 
Monat eine ganze Woche nur mit 
Leserkorrespondenz befaßt bin. Es 
ist mir ein besonderes Bedürfnis, 
mich an dieser Stelle herzlich für 
dieses „Feedback“ zu bedanken. 
Grundsätzlich wird jedes Schrei- 
ben von mir beantwortet, doch mö- 
gen Sie bitte Verständnis dafür ha- 
ben, daß es etwa 3 Wochen dauern 
kann, bis Sie eine Antwort erhal- 
ten. Aus Platzgründen kann ich nur 
einen Bruchteil der Zuschriften in 
Leserbriefe für den Peeker um- 
münzen. 

Für den Fall, daß es Sie interes- 


siert, warum ein im April-Heft des 
AUGE-Magazins veröffentlichter 
Pro-Mac-Contra-Stiehl-Leserbrief 
nicht im Peeker erschien, kann ich 
nur kryptisch antworten, daß mir 
vor einiger Zeit eine gewisse Com- 
puterfirma unter Zeugen die Kopie 
eines an den Peeker gerichteten 
gewissen Pro-Mac-Leserbriefes 
zeigte. Seit dieser Zeit reagiere ich 
auf Pro-Mac-Leserbriefe aller- 
gisch, denn Sie könnten ja mit ei- 
ner gewissen Computerfirma be- 
sprochen worden sein. Dies ist 
doch wohl verständlich, oder 
nicht? 

U. Stiehl 





Extended Graphic System 


getestet von Dr. 
Kehrel 


Ohne Hilfsmittel ist die Program- 
mierung von Apple-Shapes eine 
sehr mühsame und fehleranfällige 
Beschäftigung. Hier hilft Ihnen das 
Extended Graphic System (DM 
198,-, Firma Interface Age), das 
trotz seines Namens aus Deutsch- 
land kommt. Es dient zum Erzeu- 
gen und Editieren der hochauflö- 
senden Grafiken (HGR) sowie dem 
Erstellen von Shapes und den aus 
diesen bestehenden Tabellen. Sie 
können im vergrößerten Maßstab 
Ihre Figuren mit den Cursortasten 
oder einem Joystick entwerfen, 
drehen, in der Farbe variieren, 
ganz so wie es Ihnen gefällt, aber 
auch in der Originalgröße überprü- 
fen. Ihr Produkt läßt sich auf Dis- 
kette sichern oder mit anderen zu- 
sammen in eine Vektorentabelle 
einbinden. Auch aus fremden Ta- 
bellen können Sie einzelne 


Jürgen B. 


Peeker 6/85 


Shapes isolieren und abspeichern. 
Extended Graphic System sorgt für 
die Einhaltung aller Regeln und lie- 
fert ohne weiteres Zutun komplette 
Applesoft-Vektorentabellen, auf 
die Sie dann aus Ihren eigenen 
Basic- oder Maschinenprogram- 
men zugreifen können. Ein De- 
monstrationsprogramm führt eini- 
ge Beispiele vor. Da alle Teile me- 
nügesteuert ablaufen, werden Sie 
die gut 40 Seiten der Bedienungs- 
anleitung (mit übermäßig vielen 
Zeichensetzungsfehlern) nicht 
häufig zu Rate ziehen müssen. 
Shapes aus beliebig vielen Tabel- 
len können nacheinander geladen, 
manipuliert sowie zu einem Bild 
kombiniert werden. Ihr „Werk“ läßt 
sich in 5 Größenstufen mit wählba- 
rem Rand, auch mehrfach neben- 
oder untereinander ausdrucken. 
Das Dump-Programm ist abge- 
stimmt auf EPSON-Drucker der 
80er-Serie, ITOH 1550/8510A so- 
wie kompatible Geräte. 


... für APPLE und APPLE-compatible ... 


® 16 K Karte 
® Z 80 Karte 


® Centronics Drucker Interface (grafikfähig) 
® Musik-System (3 stimm. Synthesizer) 


für je DM 85,- 


Alle Karten 100 % getestet — volle Garantie. 


Sofort ordern im 


COMPUTERLADEN MEMMINGEN 


Kreuzstraße 9 





8940 Memmingen 


Telefon 08331-5942 


71 





Terminal-Programm 
für die Super-Serial-Card 


von Andreas Lecreux 


Das Terminal-Programm aus dem 
Peeker 4/85 wurde auf einer 
ASIO-kompatiblen Karte getestet 
und entwickelt. Da diese Karte 
nicht sehr verbreitet ist, folgt hier 
die Anpassung an die Super-Se- 
rial-Card von Apple. Die benutzten 
Adressen beziehen sich auf diese 
Karte in Slot 2 und sind dem dazu- 
gehörigen Handbuch (Apple 
+#A2L0044) entnommen. 

Die Programme werden erst vor 
der Ausführung geändert, damit 
das Original erhalten bleibt. Dies 
wird durch einen EXEC-File er- 
reicht, der als erstes die Original- 
programme in den Speicher lädt, 
diese dann entsprechend patcht 
und danach ausführt. Der Aufruf 
erfolgt somit durch „EXEC 
TERMINAL.PATCH'“. 

Bei jedem dieser Schritte wird auf 
dem Bildschirm eine Meldung aus- 
gegeben. Wer diese Prozedur 
nicht jedesmal ausführen will, kann 
die geänderten, im Speicher be- 
findlichen Programme auf einer an- 
deren Diskette durch „SAVE TER- 
MINAL“ und „BSAVE TERMI- 


TERMINAL.PATCH 


NOMON C,I,O 
HOME : 
PRINT "nur bei Version 1.3" 


NAL.B, A$2000, L1046“ abspei- 
chern. 

Im Applesoft-Programm werden 
die Zeilen, in denen die Geschwin- 
digkeit (Zeilen 2100 ff.) und die 
Steuerleitung RTS gesetzt werden, 
ersetzt. Die genauen Änderungen 
entnehme man dem Listing. In der 
Programmzeile 2904 wird die 
Schnittstelle initialisiert. Die hier 
verwendeten Parameter bedeuten: 
0OC - keine Verzögerung nach ei- 
nem CR, 

1D - 7 Datenbits und 1 Stoppbit 
OP — ohne Parität, 

1T- keine Übersetzung von Klein- 
buchstaben, 

80N — 80 Zeichen/Zeile, 

OL - keine Verzögerung nach ei- 
nemLeF. 

Als zweites erfolgt ein Sprung in 
den Monitor. Von hier aus werden 
im Maschinenprogramm alle 
Adressen, bei denen auf die Sta- 
tus- und Datenregister der Schnitt- 
stelle zugegriffen wird, gepatcht. 
Nach dem Rücksprung zu Ap- 
plesoft wird das neue Programm 
gestartet. 


PRINT "Patch für Super-Serial-Card' 


PRINT "BASIC-Programm wird geladen" 


LOAD TERMINAL 


PRINT "Maschinenprogramm wird geladen" 


BLOAD TERMINAL.B 

PRINT "Patch der Programme" 
PRINT " L; 
DEL 9914, 9934 
1599 

1535 DIM SP(15) 
1536 RESTORE : 


1537 READ SP(I) : NEXT 


Geschwindigkeit" 


FOR I = 1 TO 15 


1700 DATA 590,75,11®,135,159,399,609,1209 
171® DATA 1809 ,2400, 3600 ,4800,7200 , 9600 


1720 DATA 19209 


2105 PRINT "Tempo zur Zeit = ";SP(SP) 


2107 FOrRK= 1 T0 15: 
2118 PRINT " Baud" : NEXT K 


PRINT K;" = ";SP(K); 


2115 INPUT "";SP$ : SP = VAL(SP$) 
2128 IF SP < 1 OR SP > 15 GOTO 2115 


2125 PRINT D$"PR#"SE : 
2904 PRINT D$'"PR#"SE : 
PRINT D$'"PR#'SC 
PRINT " 
2805 : 
3330 : 
2692 : 
3050 : 
3055 : 
PRINT "' 
CALL -151 


PRINT I$;SP;'"B" : 
PRINT I$"®C1DPPITSPNGL" : 


PRINT D$"PR#'"SC 


2. RTS setzen und löschen" 


3. Ändern des Maschinenprogrammes'" 


2081:A8 N 22EF:A8 N 232D:A8 N 2354:A8 
23A9:A8 N 2079:A9 N 2RE7T:A9 N 2320:A9 
234C:A9 N 23Al:A9 N 23EF:98 N 23F0:19 


3DdG 


2415 PRINT "Patch Super-Serial-Card beendet" 


RUN 


72 





Diversi-DOS 4-C 


getestet von Rudolf Rötering 


Die vier bekanntesten Betriebssy- 
steme für den Apple Il sind: 


—- DOS: Disk Operating System, 

— UCSD-Pascal: (zu Ehren des 
Philosophen Blaise Pascal), 

— CP/M: Control Program for Mi- 
croprocessor, 

—- ProDOS: Professional Disk Ope- 
rating System. 


Seit geraumer Zeit gibt es darüber 
hinaus eine Vielzahl von Disketten- 
Betriebssystemen, die auf DOS 
3.3 basieren und im wesentlichen 
Geschwindigkeitsverbesserungen 
und teilweise mehr Befehle bieten. 
Diese applefremden Produkte ka- 
men auf den Markt, weil die Fa. 
Apple die Programmpflege des be- 
tagten DOS-3.3-Systems (Aug. 
1980) schlichtweg verschlafen hat- 
te. Als man bei Apple endlich auf- 
wachte, war es für eine verbesser- 
te Version zu spät, da bereits ap- 
plefremde DOS-Varianten vorla- 
gen, die Apple selbst wohl kaum 
mehr hätte übertreffen können. 
Daraufhin wurde kurzerhand das 
bereits für den Apple Ill vorliegen- 
de SOS (Sophisticated Operating 
System) für den Apple Il umge- 
schrieben, womit das mit DOS 3.3 
wenig kompatible ProDOS ent- 
stand. Es wurde gegenüber DOS 
3.3 so stark abgeändert, daß die 
alten Compiler (z.B. Tasc, der 
selbst DOS-neutral ist) nicht mehr 
einsetzbar sind. 


Jedes System hat seine eigenen 
Vorzüge. Systeme mit geringen 
Änderungen haben den Vorteil der 
weitgehenden Kompatibilität mit 
DOS 3.3, bieten aber meist nur 
Geschwindigkeitsvorteile bei La- 
devorgängen von Programmen. 
Das einzige Betriebssystem, das 
bei allen Schreib- und Leseopera- 
tionen Verbesserungen bietet — 
auch bei den besonders zeitkriti- 
schen Textdateien — ist das Diver- 
si-DOS, zuletzt erschienen in der 
Version 4-C. (Die Version 4-C 
zeigt nach unseren Messungen 
keine Geschwindigkeitsverbesse- 
rung gegenüber der alten 2-C-Ver- 
sion.) 


Die gelieferte Utility-Diskette über- 
trägt das neue Betriebssystem me- 
nügesteuert auf DOS-3.3-Disket- 
ten. Dabei können aus diesem Me- 
nü heraus eine Vielzahl weiterer 
Optionen gewählt werden, wie z.B. 





die Ausgabe der Bedienungsanlei- 
tung auf Drucker oder als Text- 
datei. 

Der wohl wichtigste Vorzug von Di- 
versi-DOS ist die Geschwindigkeit 
beim Diskettenzugriff. Tabelle 1 
gibt einen Zeitvergleich zwischen 
ProDOS, DOS 3.3 und Diversi- 
DOS wieder. 

Die höhere Geschwindigkeit von 
Diversi-DOS liegt nicht in einer 
schnelleren RWTS-Routine, son- 
dern in der Verbesserung des sog. 
File-Managers. Um einen Sektor 
zu beschreiben, sind bei DOS 3.3 
18 Umdrehungen der Diskette er- 
forderlich, während Diversi-DOS 
nur 2 benötigt. 

Der krasseste Unterschied liegt bei 
„APPEND“ vor. DOS 3.3 liest den 
File so lange Feld für Feld ein, bis 
der Endmarker CHR$(0) erreicht 
ist. Diversi-DOS dagegen sucht 
den Sektor für das Ende der Datei 
in der TSL und liest ihn ein, um 
dort die nächsten Felder anzu- 
schließen. 


Tastatur- und Druckerpuffer 


Diversi-DOS ermöglicht die Ein- 
richtung eines Tastatur- und/oder 
Druckerpuffers in der LC oder an- 
deren RAM-Karten, die nach Ihren 
Wünschen generiert werden kön- 
nen (nur beim 48K-DOS). Diese 
Option BUFFER schließt den Be- 
fehl „INIT“ aus und verändert die 
Vektoren für die Ein- und Ausga- 
beroutinen des Monitors ($0036 
bis $0039). Damit compilierte Pro- 
gramme, die ihrerseits auch die 
CHRGET-Routine verändern, lauf- 
fähig bleiben, kann z.B. durch 
„POKE 46965, 16“ der CHRGET- 
Patch von BUFFER abgestellt wer- 
den. Ebenso sind alle Steuerbe- 
fehle an das Drucker-Interface oh- 
ne Funktion auf das Druckergeb- 
nis. Ob ein Videoecho erfolgt oder 
ob LF nach CR ausgeführt werden 
soll, muß mit POKEs in BUFFER 
gewählt werden. Der Vollständig- 
keit halber sei noch erwähnt, daß 
BUFFER mit Einschränkungen 
auch unter Integer-BASIC ver- 
wendbar ist. 


Der FREE-Sector-Patch 


Wenn Sie den FREE-Sector-Patch 
gewählt haben, kann während des 
Programmablaufes der freie Spei- 
cherplatz auf der Diskette ermittelt 
werden. Durch folgendes Beispiel 
wird dies verdeutlicht: 

100 POKE 48376,96:  CALL 

48351: POKE 48376,32 


Peeker 6/85 








110 FR = PEEK(70) * 256 + 
PEEK(68) : REM FR = unbe- 
nutzte Sektoren 

Für 64K-DOS muß Zeile 100 so 

aussehen: 

100 POKE 63261,96: POKE 
49058,0: CALL 49054: POKE 
49058,181: POKE 63261,32 

Es sollte natürlich kurz vorher ein 

Diskettenzugriff (z.B. ein CATA- 

LOG) erfolgt sein, damit der Wert 

auch aktuell ist. Eine mögliche An- 

wendung wäre die Überprüfung 
der Rest-Speicherkapazität einer 

Datendiskette bei der Buchfüh- 

rung, bevor die nächste Konten- 

bzw. Buchungsdatei eröffnet wird, 
damit auch alle Daten auf dieser 

Diskette Platz haben. 


DOS in der Language- 
Card 


Das 48K-DOS läßt sich mit „BRUN 
DDMOVER“ in die Language-Card 
verschieben. Dadurch ist es zu ei- 
nem 64K-DOS geworden. Aus ei- 
ner ganz normalen DOS-3.3-for- 
matierten Diskette können Sie mit 
der Utility-Diskette eine 64K-Ver- 
sion herstellen, die während des 
Bootens das DOS in die LC 
schiebt. Wenn Sie beim Booten die 
ESC-Taste drücken, kann der 
„MOVE“ unterdrückt werden. Ist 
PEEK (55) > 190, wurde DOS in 
die LC geschoben. Das 64K-DOS 
stellt einige neue Befehle bereit: 


® Beim CATALOG wird die Rest- 
Speicherkapazität der Diskette an- 
gezeigt. 

@® Mit INIT X lassen sich Datendis- 
ketten formatieren, die die Spuren, 
auf denen sonst das DOS gespei- 
chert wird, für Daten freigibt. Da- 
durch erhält man 32 Sektoren = 
8K mehr nutzbaren Speicherplatz. 
® HIMEM liegt bei $BFOO (48896), 
wenn MAXFILES = 3 ist. Das be- 
deutet etwa 10K mehr RAM für 
Daten und Programme. 

® Die Fehlermeldungen werden 
im Gegensatz zum 48K-DOS aus- 
geschrieben, und nicht nur mit 
Code-Ziffern bezeichnet. 

® Mit ESC kann die CATALOG- 
Ausgabe nach jeder Bildschirmsei- 
te abgebrochen werden. 

® Bei BSAVE wird an den Pro- 
gramm-Namen automatisch die 
letzte Binäradresse und Pro- 
grammlänge angefügt. Mit PAD 
lassen sich diese Angaben auf den 
Bildschirm bringen. 

® Der RUN-Befehl kann einen 
„L“-Parameter (Line) enthalten, 
der das Programm ab der angege- 
benen Zeile startet. 


Peeker 6/85 


® Ein sehr nützliches Feature ist 
das Wildcard-Zeichen in Pro- 
grammnamen. Mit einem „=", an- 
gehängt an die ersten Zeichen des 
Programm-Namens, wird der erste 
File im CATALOG gewählt, bei 
dem die Zeichen vor dem „=" zu- 
treffen. Wenn anstelle des Gleich- 
heitszeichens ein Fragezeichen 
eingegeben wird, muß mit „Y“ 
oder „N“ das Programm ausge- 
wählt werden. Das Wildcard-Zei- 
chen allein ist nicht möglich. 

® Alle DOS-Befehle können auch 
in Kleinschrift eingegeben 
werden. 


® Mit „C“ erhalten Sie einen CA- 
TALOG vom zuletzt eingestellten 
Slot und Drive. Parameter sind hier 
nicht möglich. 


®@ Mit TLIST, <Name> lassen 
sich z.B. Textfiles auf dem Bild- 
schirm anzeigen. Mit der Leertaste 
hält die Darstellung an und fährt bei 
erneuter Betätigung fort. 


Wenn ein BASIC-Programm ge- 
TLISTet wird, kann ein „L“-Para- 
meter angefügt werden, der das 
Listing ab der angegebenen Zeile 
beginnen läßt. Hier bewirkt die 
Leertaste einen Wechsel zwischen 
Pause und dem Listing der näch- 
sten Zeile. Jede andere Taste läßt 
den Listvorgang wieder kontinu- 
ierlich durchlaufen. Dabei kann mit 
„D“ zwischen den Zeilen eine 
Leerzeile und mit „S“ diese Op- 
tion wieder abgestellt werden. Mit 
dem „:“ kann das Listing, z. B. zur 
Dokumentation, sehr übersichtlich 
gestaltet werden: Bei Mehrfach- 
Statements werden die Befehls- 
segmente zwischen den Doppel- 
punkten untereinander gelistet. 
Das Semikolon „;"“ stellt diese 
Funktion wieder ab. Wenn Sie 
beim Programm-Namen ein 
BASIC-Programm wählen, können 
auch andere Programme mit allen 
möglichen Features geTLISTet 
werden, ohne das aktuelle Pro- 
gramm zu löschen. Hier können 
durch Überfahren mit dem Cursor 
auch Zeilen aus anderen Program- 
men übernommen werden. Wäh- 
rend des TLISTings werden die 
Leerzeichen des Interpreters links 
und rechts der Zeile nicht ge- 
druckt. Dadurch läßt sich beim Edi- 
tieren der Cursor ohne Ausblen- 
dung bis zum Ende der Zeile fah- 
ren. Ctrl-Zeichen werden invers 
dargestellt und können beim Edi- 
tieren gelesen werden. 


@ Während mit den Pfeiltasten edi- 
tiert wird, können nach einem Ctrl-I 
neue Zeichen in die bestehende 
Zeile eingefügt werden. Den IN- 


Sequenzen 


SERT-Modus erkennen Sie daran, 
daß der Cursor nicht mehr blinkt 
und der Text links davon eingefügt 
wird, während der Cursor selbst 
seine Position beibehält. In diesem 
Modus können mit der Linkspfeil- 
taste die Zeichen wieder gelöscht 
werden. Durch ein erneutes Ctrl-I 
wird der INSERT-Modus wieder 
verlassen. 

® Die wohl leistungsfähigste Op- 
tion beim 64K-DOS sind die frei 
definierbaren Tastatur-MACROS. 
Jede der Tasten kann mit einer 
Folge von Zeichen definiert wer- 
den, von denen aber nur die Ctrl- 
verwendet werden 
sollten. Auf diese Weise können 
Sie sich für die verschiedensten 
Anwendungsfälle Macros definie- 
ren und in einem Binärfile mit frei 
wählbarem Namen z.B. mit 
„BSAVE MACRO.E, A$DC00, 
L$0100“ abspeichern. 


RAM-Disk 


Vom gleichen Hersteller kann ein 
RAM-Disk-Emulator bezogen wer- 
den, für den Sie einen 64K-Apple 
mit zusätzlich mindestens 64K 
RAM und Diversi-DOS in der 
Language-Card benötigen. Diese 
Voraussetzungen erfüllen ein Ap- 
ple Ilc, ein Apple Ile mit 64K Aux- 
Memory oder ein 64K Apple Il Plus 
mit 2 zusätzlich möglichen 128K- 
RAM-Karten in Slot 1-7. Für die 
128K-Typen Ilc und Ile ist der vor- 
handene RAM-Disk-Driver schon 
automatisch konfiguriert. Sollten 
Sie von dieser Konfiguration ab- 
weichen, muß der RAM-Disk- 
Driver neu eingestellt werden. Zu- 
sätzlich zur normalen Rechner- 
kombination kann noch eine 2. 
Karte in die RAM-Disk einbezogen 
werden, was mit dem mitgeliefer- 
ten Programm RDCONFIG erfolgt. 
Angesprochen wird die RAM-Disk 
über den Pseudo-Slot 3 mit „‚„S3“. 
Die Laufwerksangabe kann ent- 
fallen. 


Als raffinierte Option ist hier die 
Möglichkeit zu nennen, eine Dis- 
kette so zu initialisieren, daß ein 
begrenzt formatierter Inhalt in die 
RAM-Disk paßt. Bei diesem Vor- 
gang wird auch der Driver und das 
Startprogramm RDHELLO dort ge- 
speichert. Danach ist das Betriebs- 
system auf 64K-DOS umzustellen. 
Beim Booten dieser Diskette wird 
die RAM-Disk initialisiert und der 
Disketteninhalt dorthin kopiert. 
Diese Option erspart das mühsa- 
me Kopieren von Textfiles in die 


4 TESTDERICHTE 4 


RAM-Disk mit READ und WRITE 
oder mit FID. Eine solche Bootdis- 
kette muß nicht, sollte aber vorher 
auf allen Tracks formatiert werden, 
weil ein Kopieren mit COPYA 
sonst nicht möglich wäre. 


Die Anzahl der formatierten Tracks 
hängt von der Einstellung des 
Drivers ab, der wiederum an die 
RAM-Karten angepaßt werden 
muß. Dieses erledigt ein auf der 
Utility-Diskette befindliches Pro- 
gramm namens RDCONFIG. Lei- 
der werden die Optionen hinsicht- 
lich reservierter Bereiche für Dou- 
ble-HIRES, Konfigurationsmel- 
dung beim Booten und Bank-2- 
Schutz für die Karten im Aux-Slot 3 
nicht berücksichtigt. 


Bei der Installierung der RAM-Disk 
wird HIMEM um 768 Bytes auf 
$BC00 (48128) herabgesetzt, um 
Platz für den Driver zu schaffen. 
Hiernach stehen noch satte 45K 
RAM für Daten und Programme zur 
Verfügung. Auch die Bank 1 der 
Language-Card wird automatisch 
in die RAM-Disk integriert, die je- 
doch durch die Driver-Einstellung 
ausgeschlossen werden kann, um 
z.B. die schnelle Garbage-Collec- 
tion von Harald Grumser (Peeker, 
Heft 1/2, 85) benutzen zu können, 
die ja bekanntlich die Bank 1 be- 
legt. 


Die RAM-Disk-Einstellung wird 
durch die in Tabelle 2 aufgeführ- 
ten Speicherstellen bestimmt. 
Tabelle 3 zeigt eine Übersicht 
über die freien Speicherkapazitä- 
ten von Bootdisketten und RAM- 
Disks im Aux-Slot 3 des Apple Ile 
mit der INIT-Option des RAM-Disk 
Drivers. 


Bootdisketten für 128K-Karten 
stellen 480 und darüber hinausge- 
hende Karten z.B. die 192K-Nep- 
tune 496 freie Sektoren (volles 
DOS-3.3-Format) zur Verfügung. 
Wie weiter oben schon erwähnt, 
laßt sich zu einer dieser Karten in 
Slot 1-7 eine weitere RAM-Karte 
in die RAM-Disk einbinden. 

Wenn der RAM-Disk-File im Im- 
mediate-Mode geBRUNt wird, ste- 
hen dort 6 Sektoren mehr zur Ver- 
fügung. 


Zusammenfassend läßt sich sa- 
gen, daß ein Apple Ile mit 64K 
Aux-Memory oder größer, 
LC.FREE-Garbage-Collection in 
Bank 1 der Language-Card, 64K 
Diversi-DOS mit RAM-Disk und 
45K freiem RAM eine optimale 
Nutzung ermöglicht. 


73 








Tabelle 1 







(8201) $2099: 


74 


Befehl ProDOS 


0 | ro [ie | om | we 


Diversi- 
DOS 4-C 


Anmerkungen zu Tabelle 1 


Die Werte wurden mit dem internen Laufwerk des Apple Ilc 
ermittelt. Die in der Tabelle angegebenen Zeilennummern 


beziehen sich auf das folgende Programm: 


19 


20 


61 
62 


FOR I = 1 TO 29: PRINT CHR$ (4)"BSAVE XXX, A$1P09, 
L$7FFF": NEXT : END 


FOR I = 1 TO 2®: PRINT CHR$ (4)"BLOAD XXX": NEXT : 


A$ = "123456789 123456789 123456789 123456789 123456789 


125456789 123456789 123456789 123456789 123456789" 


PRINT CHR$ (4)"OPEN YYY": PRINT CHR$ (4)"WRITE YYY": 


FOR I = 1 TO 500 
PRINT A$ 
NEXT : PRINT CHR$ (4)"CLOSE": END 


PRINT CHR$ (4)"OPEN YYY": PRINT CHR$ (A)"READ YYY": 
FOR I = 1 TO 599 

INPUT "";A$ 

NEXT : PRINT CHR$ (4)"CLOSE": END 


A = 123456789 


PRINT CHR$ (4)"OPEN ZZZ": PRINT CHR$ (4)"WRITE ZZZ": 


FOR I = 1 TO 50900 
PRINT A 
NEXT : PRINT CHR$ (4)"CLOSE": END 


PRINT CHR$ (4)"OPEN ZZZ": PRINT CHR$ (4)"READ ZZZ": 
FOR I = 1 TO 5999 

INPUT "";A 

NEXT : PRINT CHR$ (4)"CLOSE": END 


Tabelle 2 


128+S1otx16 


(8202) $20BA: 


128+S1lotx16 


l. RAM-Karte 


d 
l 
2 
Slotx16 


64K IIe RAM-Karte (Aux) 
192K Neptune Ile (Aux) 
128K Memorymaster IIe (Aux) 
128K Saturn Typ (Slot 1-7) 
128K Legend Typ (Slot 1-7) 


2. RAM-Karte 


Slot*16 = Saturn Typ (Slot 1-7) 


Legend Typ (Slot 1-7) 


(8203) $200B: Konfigurationsmeldung 


bei RAMDISK unterdrücken 


1) ausgeben 
1 unterdrücken 


(8204) $200C: Initialisieren der RAMDISK 


beim Booten mit Kopie 


Ö = nein, 1 = ja 


(8205) $200D: Bank 2 schützen 


ö = nein, 1 = ja 


(8206) $20QE: Double-Hires-Schutz 


kein Schutz 
Double-Hires 1 
Double-Hires 2 
Double-Hires 1+2 


I N 








Tabelle 2 


Option bei 64K- 
Karten in Slot #3 
Sekt 


Double: 
HIRES 1 
HIRES 2 144 
HIRES1 +2 144 


ohne Bank 2 


Diversi-DOS 2-C 


Bootdisk 





RAM-Disk 


| KByte | Sekt | Köyte 


44 
36 
36 


wie mit 


auf Peeker-Sammeldisk #6 


In Absprache mit der Firma Diver- 
sified Software Research haben 
wir auf die Sammeldisk #6 zwar 
nicht das ganze Betriebssystem, 
wohl aber die Dateien HELLO und 
ASMDIV aufgenommen. Wenn Sie 
Diversi-DOS benutzen wollen, bit- 
ten wir Sie, $30.00 (30,- Dollar) in 
Form eines auf eine beliebige 
amerikanische Bank ausgestellten 
Schecks (ggf. Kredit-Karte) zugun- 
sten von DSR an folgende An- 
schrift zu senden: 


DSR, Inc. 

5848 Cramptom Ct. 
Rockford, IL 61111 
USA 


Konto-Nr.815 877-1343 
(Visa/Master-Card) 


Sie erhalten dann direkt von DSR 
die Diskette mit der neuesten Ver- 
sion 4-C und allen dazugehörigen 
Utilities. 

Zur Installierung der auf der Sam- 
meldisk enthalten Version 2-C ver- 
fahren Sie wie folgt: 


1. DOS 3.3 von System-Master- 
Diskette booten 

NEW 

10 PRINT "HELLO" 
Leerdiskette einlegen 

INIT HELLO 
Peeker-Sammeldisk einlegen 
RUN HELLO 

Formatierte Leerdiskette ein- 
legen 

Nunmehr aus HELLO-Menü nach- 
einander folgende Optionen (=Zif- 
fer) wählen: 


Po BoaNmN 


Option 2 = PUT DIVERSI-DOS 
ONTO A DISK 
Option 7 = BSAVE DDMOVER 


FILE 


Option 9 = EXIT TO BASIC 


Damit ist aus Ihrer formatierten 
Leerdiskette eine bootfähige Di- 
versi-DOS-Diskette geworden. Di- 
versi-DOS 2-C unterscheidet sich 
von 4-C in folgenden Punkten: 


1. 2-C enthält außer dem DD- 
MOVER keine zusätzlichen Featu- 
res („Schnickschnack“), so daß 
die 48K-Version viele Einsprung- 
adressen vom alten DOS 3.3 be- 
wahrt. Persönlich benutze ich des- 
halb nur 2-C. 


2. 2-C ist genauso schnelle wie 4-C. 
3. Wenn man mit BRUN DD- 
MOVER 2-C in die Language-Card 
Bank 2 schiebt, so liegt HIMEM 
fest bei $BF0O (48896). MAXFILES 
ist auf 5 festgelegt, d.h. 5 OPEN- 
Files. Bei 4-C wird bei Bedarf der |/ 
O-Puffer ab $BFOO abwärts fortge- 
setzt. Bei 2-C kann man also HI- 
MEM herabsetzen und Maschinen- 
programme bequem oberhalb von 
HIMEM unterbringen. Dies ist bei 
4-C nicht ohne weiteres möglich. 


4. Die diversen RAM-Disk-Driver 
für die 64K-Karte auf der „MMU- 
2.0-Diskette“ (Hüthig Software 
Service) sowie aus „Apple DOS 
3.3, Tips und Tricks“ laufen nur in 
Verbindung mit 2-C. 


Nachdem Sie die Originalversion 
4-C von Diversified Software Re- 
search erworben haben, können 
Sie selbst wählen, welche Version 
Ihnen mehr zusagt. 


Peeker 6/85 








Lasar Il ze 


getestet von H. Grumser 


Die Firma MICROMINT Streil bietet 
zu einem Grundpreis von DM 
1365,- einen zum Apple Il Plus 
kompatiblen Rechner an, der be- 
reits über eine 16K-Speicherer- 
weiterung und den Z80-A-Prozes- 
sor auf der Mutterplatine verfügt. 
Der Lasar Il ze ist in einem etwas 
üppigen IBM-ähnlichen Gehäuse 
untergebracht, das zwei normale 
oder vier Slimline-Laufwerke auf- 
nehmen kann. Als externe Tastatur 
wird ein MARK-II-Keyboard der 
Firma Multitech geliefert. 

Die zum Test bereitgestellte Aus- 
stattung umfaßte außerdem den 
Monitor Lasar 4000 (DM 330,-), ein 
bereits im letzten Peeker geteste- 
tes Chinon-Laufwerk mit Controller 
(DM 645,-) und eine 80-Zeichen- 
karte (DM 179,-). 


Aufbau und Inbetriebnahme 

Die erste zu nehmende Hürde ist 
der Zusammenbau der einzelnen 
Komponenten, die ordentlich ver- 
packt geliefert werden. Die Be- 
schreibungen der einzelnen Teile 
ist, abgesehen vom Handbuch der 
Tastatur, etwas dürftig, was dem 
Apple-Neuling Schwierigkeiten 
bereiten dürfte. Mit etwas techni- 
scher Intuition ist der Aufbau je- 
doch zu handhaben und nach an- 
fänglicher Mühe erscheint zum er- 
sten Mal die Erfolgsmeldung „LA- 
SAR UÄ ze“ und das Integer-BA- 
SIC-Prompt-Zeichen. Das Be- 


triebssystem wird nicht selbststän- 
dig geladen, sondern muß durch 
„PR#6“ gestartet werden (wohl 
dem, der über eine System-Ma- 
ster-Diskette mit Applesoft ver- 
fügt). 





Peeker 6/85 


Der BASIC-Interpreter befindet 
sich auf einer ROM-Karte, die in 
Slot O steckt; eine Applesoft-Karte 
kann nicht (!) bezogen werden. 
Dies bedeutet, daß ProDOS nicht 
gestartet werden kann, solange 
keine reine Applesoft-Firmware 
vorhanden ist, da ProDOS hier er- 
freulicherweise nicht durch den 
Controller zum erliegen kommt, 
sondern den Interpreter moniert. 


Die Tastatur 

Die deutsche Tastatur von Multi- 
tech wurde in erster Linie für die 
Programmierung unter Applesoft 
und DOS 3.3 entwickelt. So sind 
12 Funktionstasten mit Befehlen 
dieser Systeme vordefiniert. Dabei 
führt z.B. die Taste Fi12 den 
HOME-Befehl sofort aus (d.h. RE- 
TURN wird übertragen), während 
der RUN-Befehl ohne RETURN 
übertragen wird. Dies erscheint 
wohl einsichtig, bedarf jedoch eini- 
ger Gewöhnung. Darüber hinaus 
erlaubt eine Alternate-Taste den 
Zugriff auf weitere 52 BASIC- 
Schlüsselwörter mit einem Tasten- 
druck. Diese Option kann nur nach 
langem Umgang mit dieser Tasta- 
tur gewinnbringend genutzt wer- 
den. Als sehr praktisch erweist 
sich die Möglichkeit, 10 Tasten mit 
eigenen Kommandos zu belegen, 
solange der Computer nicht abge- 
schaltet wird. 

Außer einem separaten Ziffern- 
block sind noch einige Tasten ent- 
halten, die spezielle ESC-Sequen- 
zen oder Ctrl-Funktionen generie- 
ren oder automatische Zeilen- 
numerierung ermöglichen. Trotz 
der nicht gerade ergonomisch an- 
gelegten RETURN-Taste weiß je- 
der diese Tastatur zu schätzen, der 
schon einmal versucht hat, dem 


4 TESTDERICHTE 








alten Europlus-Keyboard ein „Ö“ 
zu entlocken. 


Die Groß-/Kleinschreibung wird 
von der Hard- und Firmware des 
Lasar unterstützt, unter Applesoft 
können Kleinbuchstaben jedoch 
nur mit Hilfe der 80-Zeichen-Karte 
eingegeben werden. 


Controller und 80-Zeichenkarte 
Der Controller beweist seine Kom- 
patibilität, wie schon oben erwähnt, 
beim Booten des ProDOS-Sy- 
stems und arbeitet auch, wenn be- 
reits Applesoft in die 16K-Karte 
geladen wurde. Damit ist eine aus- 
reichende Kompatibilität gewähr- 
leistet. 

Die- 80-Zeichenkarte verfügt über 


einen Softswitch und ist im großen . 


ganzen videx-kompatibel. So läuft 
der entsprechend konfigurierte 
Merlin-Assembler wie auch die 
Betriebssysteme UCSD und CP/M 
ohne Schwierigkeiten. Zum Test 
lag eine Karte mit amerikanischem 
Zeichensatz vor. Laut Angabe der 
Firma soll jedoch auch eine deut- 





sche oder wahlweise umschaltbare 
Version lieferbar sein. 


Kompatibilität 

Einleitend kann gesagt werden, 
daß keine Kompatibilitätsprobleme 
auftraten. Nach Laden des Ap- 
plesoft-Interpreters liefen alle BA- 
SIC-Programme anstandslos. 

Die Betriebssysteme UCSD und 
CP/M konnten ohne Schwierigkei- 
ten gestartet werden. Das Arbeiten 
mit dem Big-Mac- bzw. Merlin-As- 
sembler und der Applewriter-Ver- 
sion mit Videx-Preboot-Diskette 
gestaltet sich auf Grund der Groß- 
Kleinschreibtastatur bedeutend 
komfortabler. 

Die Probleme mit ProDOS können 
wohl nur bei illegalen Nachbauten 
umgangen werden; bei Kompati- 
blen bleibt zu guter Letzt der legale 
Weg, die benötigte Firmware bei 
einem „durch persönliches Band 
verbundenen Bekannten“ mit Ori- 
ginal-Apple nachbrennen zu las- 
sen. Unter diesen Umständen 
dürfte der Lasar Il ze so kompatibel 
sein wie der Apple Il Europlus zu 
seinem amerikanischen Bruder. 


75 





Fazit 

Wenn man von der recht beschei- 
denen „Paperware“ absieht, stellt 
der Lasar || ze eine echte Alternati- 
ve zu den bedeutend teureren Ap- 
ples dar. Wer ohne Betreuung der 
Firma Apple leben kann und in 
Kauf nimmt, etwa zukünftige Be- 
triebssysteme nicht benutzen zu 
können, weil zunächst eine Prüf- 
summe der kompletten Firmware 
gebildet wird, ist mit dem Lasar 
sicher nicht schlecht beraten. 

Das beschriebene Gerät wurde ca. 
drei Wochen lang zu Testzwecken 
eingesetzt. In diesem Zeitraum 
konnten keine technischen Mängel 
festgestellt werden. 


Ausgabe und 
Eingabe mi: 


TYPETERM® 


im Slot Ihres 


APPLE IV/lle 


Das bedeutet: Computer- 


textverarbeitung von der 


Schreibmaschinentastatur! 
Steckerfertig ohne Umbau. 


TYPETERM- DM479,- 
Interface incl. MWSt. 
für alle BROTHER-Typenrad- 
schreibmaschinen 


Paketpreis: DM 1348,— 


Schreibmaschine 


TYPETERM-Kit für CE-50 
CE-25 mit TYPETERM 


TYPETERM - ein starkes Interface für 
starke Maschinen! Alle Cursor- und Ctl- 
Befehle. 2k ROM auf der Karte f. DOS, 
PRODOS, CP/M, PASCAL. Alle Features: 
Hoch-/Tiefstellen, autom. Unterstreichen, 
var. Zeichen- u. Zeilenabst., autom. 
Papierzuführung usw. Ausführl. 
Handbuch vorab: 10,— DM auf Konto 
4770-306 PGiroA Han (Anrechnung). 


TYPETERM ein Produkt von 


® 
interkom Kock & Mreches GmbH 
— Post 


., 3004 4 
electronic Telefon 05139-873 





76 


Typenradschreibmaschine Brother CE 50 


getestet von Rainer Gerdes 


Allgemeines: Im November 1984 
kaufte ich mir bei der Firma Inter- 
com GmbH in Isernhagen eine 
elektronische Schreibmaschine 
vom Typ Brother CE 50 mit ent- 
sprechendem Interface für meinen 
Apple Il Plus. Der Preis lag zu die- 
ser Zeit bei DM 1298,- und er- 
schien mir bei Preisvergleichen mit 
anderen Anbietern als günstig. Die 
räumliche Nähe des Verkäufers 
gab wegen vieler schlechter Erfah- 
rungen mit anderen Computeran- 
bietern den Ausschlag. Bei der CE 
50 handelt es sich um eine porta- 
ble elektronische Schreibmaschi- 
ne mit folgenden Zusatzausstat- 
tungen: 

— automatischer Papiereinzug, 

— Halbschritt vor- und rückwärts, 

— Indizierung und Exponentiation. 
Mit der Maschine und dem Inter- 
face wird noch eine 50seitige (!) 
Beschreibung mitgeliefert. Darin 
sind die Möglichkeiten der Maschi- 
ne beschrieben: die Installierung 
und der erste Test, die verschiede- 
nen Betriebsarten sowie das Ver- 
halten bei den verschiedenen Ap- 
ple-Betriebssystemen DOS 3.3, 
CP/M und UCSD. Am Ende sind 
Subroutinen aufgelistet und doku- 
mentiert, um die Maschine auch 
unter CP/M und UCSD als Einga- 
beeinheit verwenden zu können. 
Diese Subroutinen können auch 
vom Anbieter gegen eine Gebühr 
von DM 25,- pro Betriebssystem 
auf Diskette bezogen werden. Das 
Interface hat keine Standard- 
schnittstelle, sondern nutzt den fir- 
menspezifischen Eingang der 
Schreibmaschine. Das sollte in Be- 
tracht gezogen werden, wenn man 
in absehbarer Zeit einen System- 
wechsel vornehmen will. 


Betriebserfahrungen: Die Ma- 
schine wurde bis jetzt mit den bei- 
den Textverarbeitungssystemen 
Applewriter II und Wordstar gete- 
stet. Dabei tauchten keine Schwie- 
rigkeiten auf. Die Sonderfunktio- 
nen sind über Ctrl-Zeichen zu er- 
reichen und werden von der Ma- 
schine anstandslos ausgeführt. Zu 
den Sonderfunktionen gehören 
z.B. Uhnterstreichung, automati- 
scher Papiereinzug, Wahl des Zei- 
chenabstandes, Wahl des Zeilen- 
abstandes, Halbschritt usw. 

Die Besonderheit des Interfaces 
kommt aber erst bei dem Textver- 


arbeitungssystem Wordstar zum 
Tragen, nämlich die Benutzung der 
Schreibmaschine als Eingabeta- 
statur. Nach dem Patchen des CP/ 
M-Betriebssystems mit der im 
Handbuch beschriebenen Routine 
kann der Wordstar normal mit „In- 
stall“ angepaßt werden. Es ist nur 
darauf zu achten, daß beim Driver- 
Menu die Möglichkeit CP/M “List“ 
Device gewählt wird und daß sich 
das Programm STAT auf der Dis- 
kette befindet. Mit zwei Befehlen 
ist dann vor dem Starten des 
Wordstar die Schreibmaschine als 
Ein- und Ausgabeeinheit aktiviert. 
Dabei sind Druckwerk und Tastatur 
getrennt. Man kann also Texte, oh- 
ne einen Ausdruck zu bekommen, 
direkt in den Rechner schreiben. 
Durch die vorhandenen Zusatzta- 
sten sind auch die ESC- und Ctrl- 
Funktionen erreichbar. Die 
Schreibmaschine macht also eine 
Zusatztastatur, auf die man beim 
Apple II+ wohl nicht verzichten 
kann, überflüssig, wodurch gut DM 
500,- gespart werden können. Lei- 
der ist diese Eingabemöglichkeit 
auf den Wordstar beschränkt. Der 
Applewriter ist so angelegt, daß 
nur von der Apple-Tastatur aus zu- 
gegriffen werden kann. 


Erfahrungen mit dem Anbieter: 
Die anfängliche Skepsis dem An- 
bieter gegenüber rührt aus einem 
reichen Erfahrungsschatz mit an- 
deren Computerverkäufern her 
und war auch ein Punkt meiner 
Kaufentscheidung (s.o.). Diese 
Skepsis wich aber bald und mach- 
te einem positiven Urteil Platz. Nie- 


mand ist fehlerl\os und so wurde 
auch meine Schreibmaschine von 
einer Kinderkrankheit befallen. 
Was in Basic einwandfrei funktio- 
nierte, nämlich Ein- und Ausgabe 
von der Schreibmaschine, wollte 
nach dem Patchen des CP/M-Sy- 
stems nicht funktionieren. Nach 
mehreren Versuchen schickte ich 
erst einmal die Diskette zurück (ich 
hatte mich entschlossen, die 25.- 
DM zu investieren) und bekam 
nach 24 Stunden Ersatz. Als es 
immer noch nicht funktionieren 
wollte, wurde das EPROM auf der 
Platine ausgetauscht. Das ging al- 
les sehr schnell und reibungslos. 


Nachteile der Maschine: Kein 
Licht ohne Schatten. Der erste Kri- 
tikpunkt ist die Geschwindigkeit 
der Maschine. 13 Zeichen/Sekun- 
de ist natürlich sehr langsam, und 
man braucht etwas Geduld. Die 
Schreibmaschine wird von CP/M 
nur in Slot 2 entdeckt. Ist die 
Schreibmaschine in Slot 2 einge- 
steckt, so meldet sich CP/M nur, 
wenn die Maschine in Betrieb ist. 
Wurde der Rechner ausgeschaltet, 
so muß auch die Schreibmaschine 
ausgeschaltet werden. Andernfalls 
bleibt das Schreibwerk in der Mitte 
der Maschine stehen und CP/M 
bootet nicht mehr. Es müssen also 
immer beide Maschinen gleichzei- 
tig gestartet werden. 


Fazit: Eine schöne Maschine mit 
kleinen Fehlern, die aber trotzdem 
sehr empfehlenswert ist. Die glei- 
che Empfehlung gilt für den An- 
bieter. 





Brother CE 50 


Peeker 6/85 








Editierhilfen für den Apple 


getestet von Franz-Josef Hüskens 


Jeder, der mit dem Apple ernsthaft 
programmieren will, hat mit Sicher- 
heit (und Bedauern) bereits festge- 
stellt, daß dieser Computer von 
Hause aus nur mit sehr mageren 
Editierfähigkeiten ausgestattet ist. 
Das Programmieren in BASIC wird 
fast zur Tortur, da bei der Korrektur 
einer Zeile mit „wilden“ Tastense- 
quenzen gearbeitet werden muß 
und dabei die Fehleranfälligkeit 
reichlich hoch ist. 

Dies macht es dann früher oder 
später erforderlich, ein Programm 
zu erstehen, das bei der Berichti- 
gung und Veränderung von Pro- 
grammzeilen hilft und vielleicht 
auch noch sonstige Programmier- 
unterstützung bietet. Hier sollen 
nun zwei Programme vorgestellt 
werden, von denen jedes für sich 
eine große Hilfe darstellt, die je- 
doch zur Freude des Programmie- 
rers auch gemeinsam ihre Arbeit 
verrichten können. 


Global Programm Line 
Editor 


Die Utility GPLE ist ein allgemeines 
Programmzeilen-Bearbeitungspro- 
gramm. Es ist sowohl unter DOS 
3.3 als auch unter ProDOS ein- 
setzbar und wird auf einer Diskette 
geliefert, auf der sich beide Pro- 
grammversionen befinden. Wird 
diese Diskette gebootet, wird auto- 
matisch ProDOS geladen und 
GPLE installiert. Will man unter 
DOS 3.3 mit GPLE arbeiten, so 
muß man mit einer „normalen“ 
Diskette booten und dann GPLE 
laden. 

Unter DOS 3.3 gibt es dafür drei 
Möglichkeiten: 

1. zwischen die DOS-Puffer, 

2. in die 16K-Karte (mit einer zwei- 
ten Sprache), 

3. mit DOS in die 16K-Karte. 

Für diese drei Speicherbereiche 
stehen auf der Diskette drei Pro- 
grammversionen zur Verfügung. 
Als weiteres Programm befindet 
sich auf der Diskette ein DOS- 
Mover; dieser wird bei der dritten 
Möglichkeit benötigt. 

Bevor man GPLE lädt, kann man 
es für den eigenen Gebrauch „ein- 
stellen“ (konfigurieren). Dabei 
können folgende Möglichkeiten 
gewählt werden: 

1. eine von sechs direkt unter- 
stützten 80-Zeichen-Karten (für 


Peeker 6/85 


weitere Karten sind Treiber-Pro- 
gramme auf der Diskette vor- 
handen), 

2. ob die 80-Zeichen-Karte direkt 
nach dem Laden von GPLE einge- 
schaltet werden soll, 

3. Simulierung eines Tastaturpuf- 
fers, 

4. Groß- und Kleinschreibung. 

Auf Schwierigkeiten, die die Be- 
nutzung des Tastaturpuffers her- 
vorrufen kann, wird im Handbuch 
ausdrücklich hingewiesen. 


Die Benutzung von GPLE 


Das wohl wichtigste Kommando ist 
Ctr-E. Danach erhält man die 
Möglichkeit, eine oder mehrere 
Programmzeilen zu editieren oder 
in einem Zeilenbereich bzw. im ge- 
samten Programm Wörter zu SU- 
chen und/oder zu ersetzen. 

Es wird die gewünschte Zeile geli- 
stet und zur Bearbeitung zur Verfü- 
gung gestellt. Beim Editieren eines 
Zeilenbereichs wird die jeweils zur 
Bearbeitung anstehende Zeile an- 
gezeigt. 

GPLE bietet folgende Editierhilfen: 
— Positionierung des Cursor (zum 
Anfang oder zum Ende der Zeile 
oder auf ein bestimmtes Zeichen); 
— Einfügen und Löschen beliebiger 
Zeichen (auch Ctrl-Zeichen); 

— Löschen von ganzen Zeichen- 
Ketten; 

— „Packen“ einer Zeile, d.h. alle 
Leerzeichen (Blanks), die nicht in 
Anführungszeichen stehen, wer- 
den entfernt; 

— Umwandlung des Zeichens unter 
dem Cursor in einen Klein- bzw. 
Großbuchstaben; 

— man kann aber auch alle Ände- 
rungen wieder rückgängig ma- 
chen. 

Neben dem Editieren von Pro- 
grammzeilen ist es auch möglich, 
mit Otrl-W Befehle, die im direkten 
Modus eingegeben und noch nicht 
mit RETURN bestätigt wurden, zu 
verbessern. 

Der große Vorteil, den GPLE dabei 
bietet, ist die Akzeptierung einer 
Zeile unabhängig von der momen- 
tanen Cursorposition, d.h. bei ei- 
ner Änderung oder Verbesserung, 
die am Anfang einer Zeile nötig 
war, muß der Zeilenrest nicht mit 
dem Cursor „überfahren“ werden, 
um ihn zu übernehmen. An jeder 
beliebigen Stelle der Zeile kann 
RETURN gedrückt werden, und die 


TESTDERICHTE 44 


Zeile wird so übernommen, wie sie 
auf dem Bildschirm zu sehen ist. 


Dies ist aber noch nicht alles, was 
GPLE bietet! 


Terminals an größeren Computern 
haben meist neben der Tastatur 
noch Funktionstasten, die mit häu- 
fig benötigten Befehlen oder Be- 
fehlssequenzen programmiert 
werden können. 


Durch GPLE wird der Apple auch 
mit solchen „programmierbaren“ 
Tasten ausgerüstet. Zur Befehls- 
ausführung müssen dann zwei Ta- 
sten, nämlich die ESC-Taste und 
die „programmierte“ Taste betätigt 
werden. 


Um eine Taste zu programmieren, 
wird mit Ctrl-E zuerst in den Edi- 
tiermodus umgeschaltet, dann 
ESC und die zu definierende Taste 
eingegeben und zum Schluß der 
oder die gewünschten Befehle 
programmiert. Dabei stehen insge- 
samt 1152 Bytes zur Verfügung. 


Eine so definierte ESC-Tabelle 
kann mit dem entsprechenden 
Hilfsprogramm auf Diskette ge- 
speichert bzw. auf dem Drucker 
ausgegeben werden. Die zwei 
Hilfsprogramme werden mitgelie- 
fert. Natürlich ist es auch möglich, 
die Tabelle seitenweise auf dem 
Bildschirm anzuzeigen. 


Außerdem befinden sich auf der 
Diskette noch drei Programme, mit 
denen FID, MUFFIN und RENUM- 
BER so geändert werden, daß sie 
mit dem verschobenen DOS arbei- 
ten können. 


Zusammen mit der Diskette erhält 
man ein 38 Seiten starkes Hand- 
buch, das nicht nur die Befehle 
detailliert und anhand von Beispie- 
len beschreibt, sondern auch die 
Benutzung aller auf der Diskette 
mitgelieferten Programme erklärt. 
Zusätzlich enthält das Handbuch 
noch einen Teil mit verschiedenen 
allgemeinen Tips zur besseren und 
übersichtlicheren Programmierung 
und Tips zur Anwendung von 
GPLE. 


DOUBLE TAKE 


DOUBLE TAKE kann allein arbei- 
ten; es kann jedoch auch zusam- 
men mit GPLE geladen werden, 
und zwar an die gleichen Stellen 
(s.0). Man kann bis zu vier Module 
laden (die Module werden vom 
Hersteller mit Farben bezeichnet), 
wobei das fünfte automatisch ein- 
gelesen wird. 


Die Module enthalten folgende 
Funktionen: 

— Das rote Modul enthält eine neue 
LIST- und CATALOG-Routine. 
Beim Listen eines Programms gibt 
es nun zwei Möglichkeiten: das alt- 
bekannte Applesoft-Listing und ein 
neues Listing, bei dem alle Befeh- 
le, die in einer Programmzeile ste- 
hen können, in eine neue Bild- 
schirmzeile geschrieben werden. 
Sowohl beim CATALOG als auch 
beim Listen ist es möglich, mit den 
Pfeiltasten die Ausgabe vorwärts 
und rückwärts zu steuern. 

— Das orange Modul enhält diverse 
Monitor-Hilfen. Neben einem Hex/ 
ASCII-Dump, einer Disassemblie- 
rung und einer Hexadezimal/Dezi- 
mal-Umrechnung ist es auch mög- 
lich, Monitor-Kommandos aus dem 
Applesoft-Direktmodus heraus 
einzugeben. 

— Das blaue Modul gestattet es, 
zwei Applesoft-Programme zu 
mergen (mischen), Zeilen umzu- 
numerieren (beides entspricht 
dem Applisoft-Programm RENUM- 
BER) und Zeilen automatisch zu 


numerieren (entspricht dem 
AUTO-Befehl beim Integer- 
BASIC). 


— Das gelbe Modul bietet: 


1. Programmstatistik (Zeiger und 
Speicherbereiche des BASIC-Pro- 
gramms); 

2. 2-Byte-PEEK (entspricht PEEK 
(adr) + PEEK (adr + 1) x 256); 

3. Liste der Variablen eines Pro- 
gramms, alphabetisch sortiert mit 
den Nummern der Zeilen, in denen 
sie auftreten; 

4. Anzeige der einfachen Varia- 
blenwerte eines Programms (keine 
Felder); 

5. „Cursor-Ersatz“ (der Cursor 
kann neu definiert werden); 

6. Sichtbarmachen von Ctrl-Zei- 
chen. 


Zusätzlich gibt es ein Modul mit 
„Bildschirmschaltern“ zum einfa- 
chen Umschalten zwischen Text 
und Grafik (Lores, Hires) 


Alle Komandos belegen die ober- 
ste Reihe der Tastatur und werden 
mit Ctrl-F aufgerufen. In der Anzei- 
ge erscheint dann „FUNCTION?“. 
Nun muß die mit der gewünschten 
Funktion belegte Taste gedrückt 
werden, worauf gegebenenfalls 
weitere „Hilfs“-Fragen erschei- 
nen. Als Gedächtnisstütze wird ei- 
ne Kommando-Tafel mitgeliefert, 
die man hinter die oberste Tasten- 
reihe stecken kann. 


Das Programmsystem kann wegen 
der modulweisen Lademöglichkeit 


77 











den eigenen Wünschen und Be- 
dürfnissen entsprechend zusam- 
mengestellt werden. Das dazu be- 
nötigte Programm erlaubt nicht nur 
die Auswahl der Module in der nor- 
malen Länge, sondern bietet die 
Teilprogramme in einer verkürzten 
Version an (bis auf das gelbe Mo- 
dul) und zeigt, woraus die verkürz- 
ten Module bestehen. 


Alle fünf Module zusammen benö- 
tigen in der normalen Form 8K 
Speicherplatz. Bei entsprechender 
Speicherung (DOS und GPLE in 
der 16K-Karte, DOUBLE TAKE 
darunter) verbleiben ungefähr 38K. 


Die Benutzung von DOUBLE 
TAKE wird in einem 20seitigen 
Handbuch gut beschrieben. Dabei 
wird auch auf die Unterschiede im 
Aufbau der Tastatur des Apple Il 


Lernprogramme 


getestet von 
Dr. Jürgen B. Kehrel 


Die Firma INTUS Lern-Systeme 
AG bietet eine große Zahl von Pro- 
grammen an, die Ihren Apple zum 
geduldigen und anspruchsvollen 
Lehrer werden lassen. Alle Pro- 
gramme sind in deutscher Sprache 
und auf einem Apple lie oder IIc 
lauffähig. Der ältere Apple Il Plus 
ist wegen fehlender Kleinschrei- 
bung und der eingeschränkten Ta- 
statur (Umlaute) nur bedingt ein- 
satzfähig, z.T. gar nicht. Die Dis- 
ketten sind kopiergeschützt. Zu 
Testzwecken wurde dem Peeker 
eine Auswahl der Programme zur 
Verfügung gestellt, die nachfol- 
gend charakterisiert werden. 


Maschineschreiben wie der Blitz 
In 20 Lektionen für Anfänger und 
Fortgeschrittene wird ein komplet- 
ter Lehrgang ohne zusätzliches 
Lehrbuch geboten. Die einzelnen 
Tasten (inkl. Groß- und Klein- 
schreibung), Wörter und Sätze 
werden geübt. Ihre Genauigkeit 
und Schnelligkeit wird getestet, so 
daß Sie gezielt üben können, um 
Ihre Fähigkeiten zu vervollkomm- 
nen. 1 Applesoft-Diskette, DM 
188,—. Für Apple II Plus ungeeignet. 


Computer-Simulator 

Dieses Programm hilft Ihnen, die 
Arbeitsweise eines echten Com- 
puters zu verstehen. Ein verein- 
fachter Rechner mit nur 4-Bit-Pro- 


78 


Plus und des Apple Ile eingegan- 
gen. Zusätzlich erhält man die be- 
reits oben erwähnte Kommando- 
Tabelle. 


Zur Zeit gibt es in Deutschland 
noch die Version 1.2 von DOUBLE 
TAKE. Diese Version arbeitet nicht 
mit GPLE zusammen! Wollen Sie 
beide Programme gemeinsam be- 
nutzen, so müssen Sie beim Kauf 
unbedingt die DOUBLE-TAKE- 
Version 2.0 verlangen. Diese Ver- 
sion unterstützt auch die 80-Zei- 
chen-Karte, wobei 11 verschiede- 
ne Kartentreiber zur Verfügung 
stehen. Beide Programme werden 
von der Beagle Bros Inc. verlegt 
und sind in Deutschland bei ver- 
schiedenen Importeuren erhältlich. 
GPLE kostet ca. DM 180,- (und ist 
seinen Preis wert!), DOUBLE 
TAKE ca. DM 140,-. 


von INTUS 


zessor, 20 Speicherplätzen und 10 
Befehlen läßt Sie in sein Innenle- 
ben (Ein- und Ausgabe, Zentral- 
einheit mit Akkumulator, Pro- 
grammzähler und Instruktionsregi- 
ster) schauen. Für Schüler ab etwa 
6. Schuljahr. 1 Applesoft-Diskette 
plus Manual, DM 146,-. 


Applesoft-Basic-Tutorial 

Mit diesem Tutorial und 9 Seiten 
Text werden Sie lernen, in Ap- 
plesoft zu programmieren. In 12 
Lektionen wird der ganze Befehls- 
satz des Apple (außer der hochauf- 
lösenden Grafik) mit Ihnen durch- 
gearbeitet. Zwei Anwendungstuto- 
rials zeigen Ihnen kommerzielle, 
medizinische, statistische und 
schulische Beispiele sowie Spiele. 
2 Applesoft-Disketten, DM 295,-. 


Deutsche Grammatik mit Spaß 
Sie besteht aus einer umfangrei- 
chen Serie mit zur Zeit 15 Disket- 
ten zu Rechtschreibung, Zeichen- 
setzung, Wortarten, Verben, Zei- 
tenfolgen, Adjektiven und Adver- 
bien, Satzgliedern, Haupt- und Ne- 
bensätzen, Transformationen, 
Wortbedeutungen und stilistischen 
Problemen. Neben Regeln und Er- 
klärungen stehen zahlreiche 
Übungen, die Sie zwischen 2 und 
5 Stunden pro Diskette beschäfti- 
gen. Arbeitstempo und Schwierig- 
keitsgrad sind wählbar. 15 Pascal- 
Disketten, je DM 165,-. (Apple- 
Pascal nicht erforderlich.) 


Algebra, leicht verständlich 

Die Übungsprogramme dienen zur 
Vertiefung des Elementar-Algebra- 
Stoffes. Interaktiv werden Sie in 
mehreren Schwierigkeitsebenen 
zur selbständigen Lösung geleitet. 
Bei falschen Lösungen werden 
Beispiele aufgezeigt und die Lö- 
sungsschritte nachvollzogen. Die 
Programme sind für die Sekundar- 
stufe 1 und 2 bestimmt. 4 Ap- 
plesoft-Disketten (Preis?). 





Lesen wie der Blitz 

Das Programm dient dazu, Ihre Le- 
segewohnheiten zu verbessern 
und gleichzeitig Ihr Lesetempo zu 
steigern. Ihre Konzentrationsfähig- 
keit wird gefördert, indem Ihnen 
Zahlen, Wörter oder Sätze für kur- 
ze Zeit gezeigt werden, die Sie 
niederschreiben sollen. Sie erhal- 
ten dann die Antwort, ob es richtig 
war. Durch regelmäßige Übung 
(täglich 30-60 Minuten) steigern 
Sie Ihre Geschwindigkeit. 1 Apple- 
soft-Diskette, DM 115,—. 


Erscheinungs- und Anzeigen- 
schlußtermine für peeker 


Ausgabe 


24. 6.85 24. 
22. 7.85 21, 
26. 8.85 26. 
23. 9.85 23. 
21. 10. 85 20. 


25. 11.85 


Erscheinungs- 
termin 


Anzeigen- 
schluß 


5.85 
6.85 
7.85 
8.85 
9. 85 


25. 10. 85 


... in eigener Sache: 


die Nachfrage nach dem verzgriffe- 
nen Heft 1/84 ist groß. Ab sofort 
können Sie eine Heftkopie direkt 
beim Verlag bestellen. 


Preis für das Inland: 
DM 10,- inkl. Versandkosten 


für das Ausland: 


DM 12,- inkl. Versandkosten 
eventuelle Luftpostzuschläge zzgl. 





Peeker 6/85 


APPLE | 


x | APHEI PASCAL 


A $ 


Apple II Betriebssystem, 
272 Seiten, DM 49,— 


Apple II Sprache, 
216 Seiten, DM 39,- 


Pascal 1.2 Addendum, etwa 100 Seiten, 
DM 36,- 


Betriebssystem und 
Sprache 


Erstes deutsches Referenzwerk sämtlicher Befehle 
und Systemroutinen von Apple II Pascal — mit Adden- 
dum einschließlich Version Pascal 1.2! 


Gültig für Apple II, I Plus, Ile einschließlich der 
128K/80 Zeichen-Konfiguration. 


Betriebssystem kommentiert ausführlich und in 
Deutsch Funktion und Benutzung der fast 60 System- 
routinen des Apple II Pascal Betriebssystems. 


Sprache ist das vollständige, deutsche Referenzwerk 
der „Apple Pascal“-Programmiersprache mit u.a. Infor- 
mationen über professionelle Pascal-Programmierung, 
Turtlegraphics, Programmbibliothek etc. 


In Vorbereitung: Addendum Pascal 1.2, ein 
Zusatz zum Buch „Betriebssystem“ für 1.2-Benutzer in 
Deutsch. 


„Nach Unterlagen von Apple Deutschland hergestellt“ 


te-wi Verlag GmbH 


173 
Theo-Prosel-Weg 1 nl 
8000 München 40 


Weiterführende Literatur... 


ı APPLE II - 
== Anwenderhandbuch 
(L. Poole) 


LOGO - 
Jeder kann programmieren 
(Daniel Watt) 


Erst mit Hilfe dieses Leitfadens werden Sie wi | Buch des Jahres in den USA. Für die 


1 Ihren Apple Il erfolgreich einsetzen, denn |; Computer C64, ATARI, APPLE II, IBM-PC 
# Text und Bildmaterial gehen weit über das u und TI-99. 


hinaus, was herstellerseitig an Literatur 


angeboten wird. 


416 Seiten, Softcover, DM 56,- 


APPLE II PASCAL - 
APPLE || Eine praktische Anleitung 


BSCAL (A. Luehrmann, H. Peckham) 


Hochwertiges Textbuch für Logo-Kurse für 
zu Hause und im Lehrbereich. 


A4, DM 59,— 





APPLE II - Bewegte 3D-Graphik 
(Phil Cohen) 
Selbstentworfene Graphiken und Dia- 


! Unentbehrlich für alle, die die Programmier- | ua) re gramme -— animiert oder als Standbilder — 


'“ sprache PASCAL lernen wollen und 


eben oder räumlich: alle erforderlichen 


an Zugang zu einem Apple-Computer haben. KR < > BASIC-Programme mit Erklärung finden 


544 Seiten, Softcover, DM 59,- 


EINE 
PRAKTISCHE 
ANLEITUNG - 


ARTHUR LUEHRMANN : HERBERT PECKHAM 


Computer für Kinder 
(Sally Greenwood Larson) 


Sie in diesem Buch. 


ca. 190 Seiten, Softcover, DM 49,- 











Apple Maschinensprache 


APPLE Für BASIC-Programmierer der einfachste 


Ein Buch für Kinder, ihre Lehrer MASCHINEN | Zugang zur Muttersprache des Apple. Wesent- 


und Eltern. 


„Computer für Kinder“ richtet 


SPRACHE 


DON INMAN - KURT INMAN 


lich schnellere Maschinenprogramme, direkte 
Manipulation des Mikroprozessors 6502 im 


sich anKinder im Alter von Sbis - Apple — als Brücke dorthin benötigt dieses 


tm 4153 


_ geschrieben wurde. 
Une haltsam und leicht verständlich. 
A4 quer, Fadenheftung, DM 29,80 


Noch im Programm: 
Eye or 6111111172021 011 Wa EXT 1 110) 02 4 DJ Es) Rn 
AVSESTOR PUB Wa dere) € 13 11117226: 111 9 DIT C:1 0 0:2 D)\/ Sy br Rn 


13 Jahren, für deren Interesse an | 97" «; —==@ 5 Buch nur die drei BASIC-Befehle, POKE, 
Computern dieses Buch bewufßst er \« 9% CALL, PEEK. D. Inman/K. Inman. DM 49, — 


In Vorbereitung: 
Macintosh Programmier-Handbuch DM 59,- 









































Fe N % 
+ 
ME a Perteie fir + 


Ihren Apple’ Rechnern + 
N A 


















































































































Hl Qualität, made in En 
u nn |! | IN) N 








° Laufwerke 
o RAM-Karten 


% Controller 
® komplette Sub-Systeme 


Information und Verkauf über den Fachhandel